[Yaffs] ecc error unfixed on chunk

Charles Manning manningc2 at actrix.gen.nz
Tue Nov 1 20:43:11 GMT 2005


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, yuri.golovach at mindspeed.com 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



More information about the yaffs mailing list