> UFFS was designed for NAND flash, it might not be very efficient on other
> types of media. Does your SPI flash has something like block (minimal
> erasable unit), page (minimal programmable unit) ?
Hi All,
Just to let you know: we have ported UFFS (on eCos RTOS) some time ago
on various *25* SPI "data flash" devices: (Atmel) AT25, (SST) SST25,
(Macronix) MX25, (Numonix) M25P, (Spansion) S25FL, … ranging from 4MiB
to 32MiB flash sizes.
We chose a 512 write block size - that is two flash device blocks are
always aggregated, and depending on the flash device capabilities, a
4KiB or 64KiB erase block size. The block sizes are picked up at run
time, once the actual device capabilities are detected (i.e. at run
time, not at build time).
As all these devices are supposed to be error-free (NOR-kind, lack of
spare area), we do not use EDC/ECC.
The backend is somewhat different from the original UFFS' one, as we
use a custom partition management for these devices, where blocks are
not share across partitions (this is suboptimal for wear levelling,
but we need to keep sensitive data out of UFFS management).
UFFS works smoothly on these devices, although NOR serial flash
devices are not the primary target for UFFS :-)
HTH,
Manu