Reduce boot time with jffs2 and CM-X255

Ricard Wanderlof ricard.wanderlof at
Wed Dec 20 04:17:04 EST 2006

On Wed, 20 Dec 2006, Michel LECONTE wrote:

> I use a CM-X255 with a NAND Flash of 512 Mo
> where roughly 250 Mo are used (90 Mo for the native distribution
> provided by Compulab and 160 Mo for specific applications).
> At the boot, there's a scanning of the MTD1 (4096 blocks) corresponding
> to the NAND Flash.
> This scanning takes 1mn20s. The full boot time, from a reset to the
> login prompt, takes 4mn.
> I hope that these precisions can be useful.

I don't know if this helps, but I have noted that when mounting a flash 
partition which contains lots of erased blocks/sectors, that jffs2 after 
the mount has completed in the background (re-)erases the blocks and 
writes cleanmarkers to them (the logic of this is clearly explained in the 
JFFS2 documentation on the mtd home page). For NOR flash, this can be 
alleviated easily by instructing mkfs.jffs2 to add cleanmarkers to unused 
parts of the image. For NAND flash, the cleanmarkers are stored in the 
out-of-band (OOB) area, which is normally not part of an image; 
consequently, it is easier to leave it up to jffs2 on the target system to 
erase and write cleanmarkers, which takes time, or at least takes up 
system resources, causing other processes to run slower. Admittedly, NAND 
is faster than NOR, but then you've got quite a lot of empty flash too 
(250 MB).

I don't know what the solution is - one idea is that a program like 
nandwrite could be instructed to write cleanmarkers to the OOB of unused 
parts of a partition. Currently there is no support for this but it could 
be added.

Hm, sidetracking here a bit, I'm thinking a general erase + write image 
utility for NAND flash would be useful, given that bad block management 
gets a bit hairy when you write to NAND and the write fails - should the 
block be re-erased (not really part of a nand writing tool's job) and 
retried, or just marked as bad (because most likely the block had recently 
been erased by an erasing tool)? Having erase+write in the same tool would 
make it easier for the tool to manage this, and it could also write jffs2 
cleanmarkers to the oob as part of the whole procedure.

Except for testing, most of the flash writing I come across is writing a 
complete image (usually jffs2, but also boot images) to a flash partition.

Ricard Wolf Wanderlöf                           ricardw(at)
Axis Communications AB, Lund, Sweden  
Phone +46 46 272 2016                           Fax +46 46 13 61 30

More information about the linux-mtd mailing list