Re: [Yaffs] ecc error unfixed on chunk

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
CC: yuri.golovach
Subject: Re: [Yaffs] ecc error unfixed on chunk
Hi Yuri

You don't give much detail to work with, but I'll try. I can infer from what
you write below that you are using YAFFS2 code with backward compatability to
yaffs1. However the message text does not match the latest.


On Saturday 29 October 2005 09:40, wrote:
> Good day dear All.
>
> I've installed latest yaffs and latest mtd from CVS and receive some (not
> some, a lot of) next error messages:
>
> **>>ecc error unfixed on chunk 32:0
> **>>ecc error unfixed on chunk1 32:1


Since about 5 weeks ago, these messages were changed to read
">>mtd ecc error... " or ">>yaffs ecc error..." to distinguish between errors
detected by mtd or yaffs_ecc.

The messages are saying that a chunk was read, and ecc errors were found.
The ecc is capable of detecting multi-bit errors but can only correct
single-bit errors.

>
> for a lot of chunks. These errors I've received just at the mount
> procedure, or when I'm trying to do, for example, ls.


Did you get this with a fresh partition or only after you had loaded data?

Did you use mkyaffs to load an image or just start with an empty partition?

>
> I have no such problems with previous yaffs and mtd versions.
>
> Also I have a short look on sources, and this error messages comes from
>
> yaffs_ReadChunkFromNAND function (yaffs_tagscompat.c)
>
> else if(nspare.eccres2<0) {
> T(YAFFS_TRACE_ERROR,(TSTR("**>>ecc error unfixed on chunk1
> %d:1\n"),chunkInNAND));
>                 }

>
> at error case both nspare.eccres2 and nspare.eccres1 equivalent to -1.


-1 means that there was an unfixable error
0 means there was no error
1 means there was a fixable error

>
> I try to compared with previous versions, and
> nspare.eccres2==nspare.eccres1==0 for chunk 32.
>
> Please, can you help and explain me, where is this problem could be?


The problem is almost certainly due to a disagreement between yaffs and mtd
over who is doing the ECC checking. Only one of them should do the checking.
There have been some changes regarding ECC checking in mtd recently so these
could be a factor.

OK the first thing is to ensure you are using the latest yaffs source. It does
not look like you are.
Then, make sure yo select the correct options to choose whether yaffs or mtd
will do the ECC.

If you are using mkyaffs to initialise a partition then I suggest you start
off working with an empty partition.

If you can, then diff the old and new mtd to check what changes might be
impacting on the problem.

-- Charles