[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Anyone using mtd on NAND flash?

stephane.laroche@xxxxxxx.com said:
> On the subject of NAND flash, could some JFFS expert point me 

You're posting in the wrong place if you want JFFS experts. Join the JFFS
development list - see http://developer.axis.com/software/jffs/ for
subscription instructions.

> on where I should look for those multiple writes to the same page?

The JFFS code writes out a node header, then writes the data separately. In 
some cases, it even goes back after writing the data and puts the correct 
checksum into the node header. 

Look for calls to flash_safe_write() in intrep.c

> I am currently working on a NAND driver for MTD that takes care of bad
> blocks and virtual mapping.  It does ECC, keeps a bad block table and
> does the virtual mapping of blocks so that MTD sees a linear block
> device with 100% good blocks. 

Nice. One question - why do you want to do it in the MTD driver rather than 
in the next layer up? This kind of functionality will be needed for a 
number of devices, so it's probably worth putting it in JFFS.

We're already intending to stop JFFS from treating the flash as a single 
linear device, and start keeping a list of erase blocks in various 
conditions (full,dirty,empty,etc.). It wouldn't be difficult to handle bad 
blocks once that's done.

Also, the write caching to ensure we only perform one write per page is 
going to make it extremely easy for JFFS to do its own ECC too, where