On 07/04/2016 08:12 PM, Cédric Le Goater wrote: > On 07/04/2016 07:57 PM, mar.krzeminski wrote: >> >> >> W dniu 04.07.2016 o 14:18, Cédric Le Goater pisze: >>> Some SPI controllers, such as the Aspeed AST2400, have a mode in which >>> accesses to the flash content are no different than doing MMIOs. The >>> controller generates all the necessary commands to load (or store) >>> data in memory. >>> >>> To emulate such a behavior, we need to have access to the underlying >>> storage of the flash object. The purpose of the routine is to set the >>> storage of a preinitialized SPI flash object, which can then be used >>> by the object itself but also by a SPI controller to handled the >>> MMIOs. >> Hi, >> >> I am not sure if this approach is correct. I can not find any datasheet >> to this SPI controller, but as you mentioned in first paragraph, controller >> generates all commands (probably ones are somehow configurable). > > yes. see this patch : > > http://lists.nongnu.org/archive/html/qemu-devel/2016-06/msg08229.html > > /* CEx Control Register */ > #define R_CTRL0 (0x10 / 4) > #define CTRL_CMD_SHIFT 16 > #define CTRL_CMD_MASK 0xff > > >> In this series you hack this behaviour and you do direct access to file. > > It is true it is not very respectful of the m25p80 interface. > >> IMHO you should emulate sending such commands in SPI controller >> model. > > I will give it a try. I don't think the alternative is a complex > change anyhow.
So yes, that would work out pretty well. But there is another need that does not show up in the series (I am not splitting the patches correctly I guess) We would like to boot directly from a flash image. For this purpose, the pflash_cfi object uses a memory region of type rom and uses the storage behind the region. m25p80_set_rom_storage() is probably not the right API to share the storage. I am looking for a way to handle this without changing too much m25p80, which does not have a mem region currently. Suggestions welcomed ! :) Thanks, C.