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