Re: [Yaffs] android boot issue with latest git source

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Sudeep K N
Date:  
To: Wills, Jordan
CC: Charles Manning, Kieran Cox, Lloyd, Jay, yaffs@lists.aleph1.co.uk
Subject: Re: [Yaffs] android boot issue with latest git source
Jordon Wills,

We too faced similar issues with data getting zeroed in the first two
pages of a block following a bad block.
Below is our analysis:

    The problem was the OOB length YAFFS2 was reading from MTD. On OneNand
    there was 20 bytes left free on OOB and YAFFS2 would request a read of
    28 bytes of OOB. The OneNand MTD driver would read 20 bytes from the
    page requested and the rest 8 bytes from next page. If the next page
    happened to be marked bad we would get an ECC error which would cause
    the current page to be ignored as well. Hence the YAFFS2 mounted file
    would get corrupted (if this happens to be some of the core android
    jar files then it would result in android boot being stuck).


    The latest YAFFS2 code ignores reading the ecc portion of the struct (12
    bytes) from OOB.(YAFFS2 any way does not calculate the ECC and is handled
    by the MTD driver). This way we only read 16 bytes from OOB which is
    less than oobavail and hence fixes the issue.


Hope this helps you.

Regards,
Sudeep