Re: [Yaffs] Strange ECC Error

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: Daniel Gustafsson, yaffs
Subject: Re: [Yaffs] Strange ECC Error
Are you getting the errors when scanning empty chunks/pages? If so, these can
be safely ignored.

The "ECC turned off" does not apply to the tags ECC calculation, only to the
data ECC calculation.

-- Charles



On Wednesday 13 October 2004 03:48, Daniel Gustafsson wrote:
> Can somebody please explain the functions below. I am using yaffs/direct,
> ECC turned off.
>
> When scanning the emfile during a mount there are ecc errors.
>
>
>
> void yaffs_CalcTagsECC(yaffs_Tags *tags)
> {
>     // Calculate an ecc

>
>     unsigned char *b = ((yaffs_TagsUnion *)tags)->asBytes;
>     unsigned  i,j;
>     unsigned  ecc = 0;
>     unsigned bit = 0;
>     tags->ecc = 0;

>
>     for(i = 0; i < 8; i++)
>     {
>         for(j = 1; j &0xff; j<<=1)
>         {
>             bit++;
>             if(b[i] & j)
>             {
>                 ecc ^= bit;
>             }
>         }
>     }

>
>     tags->ecc = ecc;                    %%%I always
> get a high value on ecc approx 64

>
>
> }
>
> int  yaffs_CheckECCOnTags(yaffs_Tags *tags)
> {
>     unsigned ecc = tags->ecc;

>
>     yaffs_CalcTagsECC(tags);

>
>     ecc ^= tags->ecc;                    %% Now my
> ecc increases to approx 4096.

>
>     if(ecc && ecc <= 64)
>     {
>         // TODO: Handle the failure better. Retire?
>         unsigned char *b = ((yaffs_TagsUnion *)tags)->asBytes;

>
>         ecc--;

>
>         b[ecc / 8] ^= (1 << (ecc & 7));

>
>         // Now recvalc the ecc
>         yaffs_CalcTagsECC(tags);

>
>         return 1; // recovered error
>     }
>     else if(ecc)
>     {
>         // Wierd ecc failure value
> %%%% I always end up here.
>         // TODO Need to do somethiong here
>         return -1; //unrecovered error
>     }

>
>     return 0;
> }

>
>
>
> //Daniel
>
>
> _______________________________________________
> yaffs mailing list
>
> http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs