NAND + YAFFS2 - bad blocks
Stanislav Popov
s.popov at rsc.bg
Wed Apr 29 03:03:18 EDT 2009
Hi,
thanks for your reply!
If I use flash_eraseall then the bug could be in it ?
So there should be no issue in YAFFS2 FS or Kernel Driver?
How do you suggest to write the FS?
Thank you very much!
Stanislav
subbu at fortisys.com wrote:
> Hi,
> Yaffs2 is combination 2048+64 Bytes, when you write filesystem to NAND, you have to make sure that oob data is written to oob block from offset 0x2 to 0x34, if you write at oob data at offset 0x0 0x1, NAND will identify it as bad block, therefore you have to make sure to avoid writing oob from 0x0.
>
> Try using nandwrite utility with the above mention changes.
>
>
> Regards,
> Subramani V
> Massuchussets
> USA
>
>
> --- s.popov at rsc.bg wrote:
>
> From: Stanislav Popov <s.popov at rsc.bg>
> To: linux-mtd at lists.infradead.org
> Subject: NAND + YAFFS2 - bad blocks
> Date: Tue, 28 Apr 2009 19:03:26 +0300
>
> Hi,
>
> I have 64 MB NAND flash on Jacinto (ARM) board.
> I am using the device formatted as one YAFFS2 partition.
> My SW ECC from NAND is enabled in the kernel and "useNANDECC" in YAFFS
> is set to 0
> (If this is non-zero, then YAFFS will not perform ECC and it is assumed
> that the hardware ECC or specified NAND access functions will perform EC
> checks.)
>
> I found that I have 1000-2000 eraseblocks that were reported as "bad block".
> I can see them in u-boot with "nand bad" command and when laoding my
> nand_jacinto driver.
> When using the NAND they are getting much more.
> Actually they are NOT bad blocks!
>
> I edited the kernel and remove is_bad checking when erasing.
> Also I edited the mtd-utils (flash_eraseall) and removed is_bad checking
> when erasing.
> So I was able to make low-level format of my NAND flash which also erase
> the bad blocks.
> (like 'nand erase scrub' command in u-boot, but I currently I do not
> have such command)
> After that I had NO bad blocks.
>
> I made some tests:
> I formatted Nand with YAFFS2 FS
> - YAFFS2 ECC + NO NAND ECC - when using fs appeared bad blocks and
> getting more.
> - YAFFS2 NO ECC + NAND SW ECC - when using fs appeared bad blocks and
> getting more.
>
> I formatted Nand with EXT2 FS (ext2 fs is not writing into oob)
> - NAND SW ECC ENABLE - NO bad blocks appeared in the time!!!
>
> So the result is that the issue is in using YAFFS2 + NAND.
>
> Maybe the source of the issue is some YAFFS2 configurations?
> Do you have any idea?
> It's very critical issue for me.
>
> Thanks and Regards,
> Stanislav
>
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
>
>
More information about the linux-mtd
mailing list