On Saturday 17 April 2010 07:33:46 Tom Knezevich wrote: > I see my problem has been experienced by others...? I'm in a little of a > bind and need some guidance. I'm using a 2.6.22 Linux Kernel w/Yaffs2 > enabled and have some issues on post NAND burning during Kernel Boot. On a > particular NANDs with bad blocks, the Kernel trys to execute the Init stage > and fails. The kernel panic trail is : > > yaffs: dev is 32505858 name is "mtdblock2" > yaffs: passed flags "" > yaffs: Attempting MTD mount on 31.2, "mtdblock2" > [yaffs]: Version Set: 2 > [yaffs]: MTD Write Size: 2048 > [yaffs]: Version Set: 2 > block 310 is bad > block 458 is bad > VFS: Mounted root (yaffs2 filesystem). > Freeing init memory: 92K > Kernel panic - not syncing: No init found. Try passing init= option to > kernel. > > The failure is due to the Kernel unable to execute the init files for the > init/rootfs stage. Did you load the files into yaffs? If so, how? > I suspect there's some issue with the bad block > locations mapping to these file locations on the NAND? I know the Kernel > manages bad blocks using the BBT in the MTD Driver stack, so not sure why > this would fail if the MTD Driver checks for bad blocks prior to reading > from NAND? FYI - Our NAND Burner uses the "skip over bad blocks" method, > and DOES NOT erase bad blocks so the Kernel can scan and build the BBT > during MTD initialization. Bad blocks should not be a problem. It is likely that the flash spare (oob) area has been programmed incorrectly. > > Up until now, I've been using the same YAFFS2 Dump image fie when burning > to our identical NANDs (SamSung 128MB/1Gb). Guess you can reuse the same > YAFFS2 Dump Image whenever you burn to a different yet identical NAND > (although I've had good success until the one that's now causing me > problems). Am I supposed to create a new YAFFS2 Dump Image for every NAND > that I burn?? There are some subtle issues with dumping and restoring. Due to bad block placement being different between flash devices you cannot move a dump from one flash to another if it includes a checkpoint. If you do the following then you should get a portable dump. #mount -o"no-checkpoint-write" /dev/mtdblock0 /y #make some modifications to /y #unmount /y Now dump that, excluding the bad blocks. -- Charles