On Tue, May 17, 2005 at 10:46:52AM +0800, ext jeanwelly wrote:
> Why occured so many bad blocks of nand. Are these blocks real bad? How
> can I take a test in another way?
I have seen few test boards with JFFS2 partitions and more bad blcoks
than there should be. More than the manyfactures suggests the should
be at maximum.
When investigating one board I found something had been write garbage
to OOB. I found for example word "driv" at the end of one OOB and "er"
at the beginning of next. It looked just as if somebody had written
kernel memory at random point to flash. This is not reproducinle but
now I have garbage check in nand_base.c:write_oob() to hopefully catch
this if it ever repeats.
With one boatd with with lots of presumably incorrectly marked bad
blocks board I broke the rules and simply disabled the bad block check
from nand_base.c and from flash_eraseall.c. I ran flash_eraseall and
the flash erased nicely except for few, obviously real bad blocks
which refused ot be erased. I wouldn't recommed the procedure because
one end up with no bad blocks at all but in my case it worked nice and
test board has performed flawlessly since then.
I think we would need a simple test program that would be similar to
badblocks program, writing patterns of 0x00, 0x55, 0xAA etc. to flash
and trying to find if some block fails when erasing, writing or in
verify read.
Jarkko Lavinen