On Monday 14 May 2012 15:40:30 CHEN XUEQIN wrote:
> Hi all:
>
> I use yaffs2 to save some user data in nand flash, like syslog
> message. After some months, I found the nand flash part could not be
> mounted again. No detail kernel message was available. So I added some
> debug code to yaffs_ScanBackwards. Yaffs2 told chuldid error, chunkId value
> readed 0x0400067b, which wase large than max value 0x000FFFFF. From the
> chunkId value, it seemed high-order bit flip from 0 to 1 , thus turned into
> 0x0400067b. So the yaffs2 mount fail.
What version of yaffs2 is this?
>
> In my yaffs kernel compile option, the yaffs2 tag ecc was disabled.
Why did you do that? Leave it ON if you are not getting ECC elsewhere.
> My questions:
>
> 1. My flash type is sansumg MLC nand flash. Is there common that bit
> flip in nand oob area?
Bit changes are typically more common with MLC than SLC.
> 2. Yaffs2 tag ecc option should be enabled to correct the bit flip in
> tags data?
Yes.
> 3. If yaffs2 tag ecc option is enabled, how about the filesystem read
> and write performance in production environment ?
It should be very little difference.
The only valid reason to disable reason to turn off tags ecc is to reduce the
size of the tags structure. This should only be attempted in a situations
where the ecc comes from elsewhere.
-- CHarles