NAND flash and JFFS(2)

Veli-Pekka Ylönen velpeyl at utu.fi
Tue Feb 5 09:41:37 EST 2002


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.







More information about the linux-mtd mailing list