On 11/3/21 12:59 am, jan.som...@dlr.de wrote:
> Hello,
> 
> We will probably at some point need support for Micron-based NOR-flash 
> devices to store data which are connected via SPI.
> I found the flashdisk API in RTEMS and was wondering if I understand 
> everything correctly.
> My idea would be to have the layers like this:
> spidev-driver <-- micron-flashdisk-driver <-- (libblock?) <-- 
> jffs2-filesystem <-- POSIX file operations
> 
> Another option would be to have the flashdisk-driver do the SPI transaction 
> itself, but I am not sure if there is a lot performance to gain.
> The bus setup will not change between consecutive read/write accesses to the 
> memory (except for CS if multiple flash devices are present).
> From my work with the spidev drivers, which are currently in review, the 
> overhead didn't seem very big to me for these conditions considering that 
> writes will always be in the kB range due to the sector size.
> Using the spidev API would have the benefit that the same flashdisk driver 
> can be used with different SPI devices.
> 
> Are these assumptions reasonable or does someone have further suggestions to 
> consider?
> 

I do not think the JFFS2 will sit on top of libblock. The flashdisk does block
management and I am not sure you want that with JFFSv2,

I suggest a CFI based NOR flash chip driver that uses the QSPI driver. Then a
file to glue it to JFFS2. The flash chip driver needs to provide:

 - open
 - read   - hooked to JFFSv2
 - write  - hooked to JFFSv2
 - erase  - hooked to JFFSv2
 - close  - hooked to JFFSv2 destroy

I would also considering supporting a base and size in the JFFS flash chip glue.
This lets you leave the bottom part of a boot QSPI flash to support a boot and
factory image (anti-bricking) set of blocks. I have also used a top block to
hold factory settings in some Zynq devices.

Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to