NAND flash and JFFS(2)

Veli-Pekka Ylönen
2002-02-05T14:30:28Z

I read TODO file in JFFS2 sources and found this:

- NAND flash support:
- Fix locking in jffs2_garbage_collect_deletion_dirent().
- Move CLEANMARKER into the 'spare' area.
- Write batching - build up a NAND-page worth of data and write out all in
one go, using the hardware ECC or block-based software ECC. This gives us
some interesting problems, but it's not that bad:
- When we go to erase a block from which we've been garbage-collecting,
we have to make sure that the nodes in it _really_ are obsolete, and
the new node which finally obsoletes the block we want to erase isn't
still waiting in the write-buffer. We can do this by sticking such
blocks not on the erase_pending_list, but on a new erase_pending_wbuf
list, and then moving them to the erase_pending_list when the buffer is
flushed.
- fsync() becomes a non-NOP.
- Deal with write errors. Data don't get lost - we just have to write
the affected node(s) out again somewhere else.

Is somebody already working on this?

I read also in the archive that JFFS should support NAND. Is this true?
I have made the raw NAND interface work but JFFS and JFFS2 doesn't
do the batching and tries to write multiple times to same
page.