--
You received this message because you are subscribed to the Google Groups "UFFS" group.
To view this discussion on the web visit https://groups.google.com/d/msg/uffs/-/uv3VqR4YJz0J.
To post to this group, send email to uf...@googlegroups.com.
To unsubscribe from this group, send email to uffs+uns...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/uffs?hl=en.
> By the way, are you running it on emulator ? I don't know any NAND flash
> with 1KiB page/4KiB block combination.
We are not really using NAND flash devices with UFFS.
We are using serial flash devices: *25 series, mostly, from various
manufacturers. Those devices are not accessed through a parallel
interface, but over a SPI bus with a dedicated protocol. Erase blocks
range from 4KiB up to 64 KiB, while "pages" are mostly a virtual
concept as the flash device can be written from 1 byte up to 256
bytes.
However, the UFFS layer accesses the flash device through a generic
flash device driver that only expose 4KiB or 64 KiB erase blocks and
512-byte pages.
We are not using ECC, as these flash devices are guaranteed error-free
up to 100.000 erase cycles. There is no "spare" area either.
The exact underlying flash technology actually depends on the
manufacturer (for example, erasing a 64 KiB block takes from 50ms to
5s!), but it can be seen as NOR rather than NAND.
Nevertheless, UFFS perfectly fits our needs ;-)
Cheers,
Emmanuel.
Could you try to change MAX_DIRTY_BUF_GROUPS to 1, see if that fix your problem ?
My gut felling is that 4 pages/block configuration may have somehow conflict with 3 dirty groups.
By the way, are you running it on emulator ? I don't know any NAND flash with 1KiB page/4KiB block combination.
I am not sure why lowering it to 1 leads us to flush the 1st block of the file being written? And actually, why out of all is that one not flushed at that moment (I would have thought it would have been the last one). But still, it does work.
Also, I suppose lowering MAX_DIRTY_PAGES_IN_A_BLOCK would work too?