[prev in list] [next in list] [prev in thread] [next in thread]
List: yaffs
Subject: [Yaffs] Problems with Refreshing Blocks with ECC Corrections
From: Trent Lillehaugen <trent.lillehaugen () red ! com>
Date: 2011-08-10 16:31:32
Message-ID: DF72ECD76D0B92498817A7D3A97DEE840EFB8E2858 () LFEXCH01 ! red ! local
[Download RAW message or body]
I am using YAFFS with the direct interface for an embedded system.
There are two YAFFS partitions:
/image
/data
A typical boot cycle is as follows:
- Bootloader mounts /image as read only
- Bootloader copies executable from /image to RAM
- Bootloader unmounts /image
- Bootloader starts application
- Application mounts /data as read/write
- Application does stuff
- Application unmounts /data
- Application shutsdown system
I would expect YAFFS to refresh blocks in the /image partition that start s=
howing ECC errors that are corrected, but I do not see this occurring.
To test, I modified our NAND driver to inject 1-bit read errors on a specif=
ic page. I see that our integration with YAFFS correctly identifies that t=
he page has an ECC correction and that YAFFS marks it for priority garbage =
collection. To ensure that some garbage collection occurs I am calling 'ya=
ffs_BackgroundGarbageCollect' before unmounting.
Stepping through the 'yaffs_BackgroundGarbageCollect' call I see that the b=
lock containing the page with ECC correction is not moved to another block =
because in 'yaffs_GarbageCollectBlock', 'maxCopies' is set to 5 and in this=
case more than 5 pages are in use.
I don't see how blocks will ever be refreshed correctly in this scenario.
Are my expectations incorrect?
I am forgetting to call something or calling something incorrectly?
Is there any way (without modifying the YAFFS code) to force refreshes even=
on a heavily used block?
Thanks,
Trent
This e-mail is the property of RED Digital Cinema Camera Company. It is int=
ended only for the person or entity to which it is addressed and may contai=
n information that is privileged, confidential, or otherwise protected from=
disclosure. Distribution or copying of this e-mail, or the information con=
tained herein, to anyone other than the intended recipient is prohibited.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic