[Yaffs-archive] Re: [YAFFS] HW ECC Macro

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Luc Van Oostenryck
Date:  
To: YAFFS list
Subject: [Yaffs-archive] Re: [YAFFS] HW ECC Macro
Charles Manning wrote:
> On Wed, 28 Aug 2002 09:48, Christian Gan wrote:
>
>>Hello all,
>>Charles, can we have another compile macro that disables YAFFS ECCs? I
>>currently have an implementation that works, I can email it to you if you
>>would like.
>
>
> Yes please do. I'll look at what you have and figure out the most appropriate
> way to include this.
>
>
>
>>A further problem I have to think about now is the max number of allowable
>>writes in the OOB. Some NANDs allow for three writes but there are some
>>who's maxes are speced for two. Which means that in my case:
>>
>> 1 write to OOB by the MTD when writing a page (for HW ECC).
>> 1 write to OOB by YAFFS for tags.
>> 1 write to OOB by YAFFS to mark pages deleted.
>> = 3 writes
>>
>>which of course would violate some NAND specs...
>
>
> The tightest specs I have seen for currently shipping NAND allows 1 write
> into the data area and two into the NAND area (Please let me know if you see
> anything tighter). YAFFS can work with this. I had a quick scan of the nand
> mtd and thought the main write only used one write op, but I may be mistaken.
> Luc's high speed YAFFS-friendly mtd will undoubtedly use one write op for
> this. Then, as you point out there is another write op for stomping a deleted
> page.


Indeed, my intent is to do:
1) write a page with the data, retrieve the ECC from the HW.
2) let YAFFS combine this ECC value with the tags.
3) write the combined tags+ECC to OOB.
=> 2 write/page

another solution should be to duplicate to let my NAND layer be aware of YAFFS
the organisation of tags into OOB data and TagsECC calculation
and do the whole thing in one write:
1) transfer the data into NAND
2) retrieve the ECC from the HW
3) let the NAND layer combine this ECC value with the tags and calculate the tags ECC
4) finish the transfer with this OOB data
5) launch the program command, ...
=> 1 write/page

at the moment, my preference go to the first solution because of it let the NAND layer
agnostic about the tags organisation into the OOB data.

BTW, my NAND layer is almost finished, just one little bug ;-) and the HW ECC stuff ...



> I'm starting to design up YAFFS2 for the next generation NAND parts (starting
> to ship). These have 2kbyte pages, 128kbyte blocks. Some of them might not
> allow any rewrite. YAFFS2 will be designed to work with a chunk size of 1kB
> or 2kB to work with existing parts too. YAFFS2 will use less RAM, but will
> likely scan slower than YAFFS.
>
> As the design solidifies I will post the design for comment.
>
>
>>What I'm thinking:
>> - write a MTD level function that does the page and OOB write at the same
>>time.
>> - somehow pass the ECC value up to the calling function from the MTD and
>>have higher levels write the value into OOB.
>> - any other ideas?
>
>
> Send your stuff, I will see if we can factor it in nicely.
>
> -- CHarles
>
>
> ---------------------------------------------------------------------------------------
> This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
> If mailing list membership is no longer wanted you can remove yourself from the list by
> sending an email to with the text "unsubscribe"
> (without the quotes) as the subject.
>
>





---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by
sending an email to with the text "unsubscribe"
(without the quotes) as the subject.