Erasing NAND bad blocks?

Charles Manning manningc2 at actrix.gen.nz
Wed Aug 10 16:08:15 EDT 2005


On Wednesday 10 August 2005 11:33, Thomas Gleixner wrote:
> On Tue, 2005-08-09 at 11:41 -0500, Steven Hein wrote:
> > (Yes, I do know that erasing NAND flash blocks that are marked bad
> > is a VERY BAD IDEA.....I'm asking the question regarding a
> > specific HW/SW debug situation.......)
> >
> > In the course of bringing up new hardware with NAND flash attached
> > I have had occasions where a software bug will cause a NAND-based
> > filesystem (such as YAFFS) to mark *all* of the blocks in a filesystem
> > as bad.  In the past, I have hacked the nand_erase() function to
> > allow erasing of bad blocks, then wrote a custom app to scan the OOB
> > data, doing a MEM_ERASE for blocks that had been marked bad by the FS.
> > Just wondering.....has anyone else
> > run into this situation, and is there a more graceful way of doing
> > this (i.e. without hacking the MTD NAND driver)?
>

As this comes around often wrt YAFFS1, I think there are two things that can 
be done in YAFFS to help address the issue:
1) Make the bad block marker used in YAFFS1 something that is easy to 
recognise (eg. 'Y' ) instead of 0x00. That way it should be easy to recognise 
yaffs -vs- factory marked bad blocks.
2) Add a config in yaffs to not do any bad block marking during board bring 
up.

-- CHarles




More information about the linux-mtd mailing list