query: nand read/write method for 2048 + 64 byte page
vimal.newwork at gmail.com
Sun Jun 28 02:23:32 EDT 2009
On Sat, Jun 27, 2009 at 10:47 AM, Amit Kumar
Sharma<amitsharma.9 at samsung.com> wrote:
> Hi Vimal,
>> On Friday 26 June 2009, vimal singh wrote:
>>> The problem is that HW ECC engine in BCH mode dose not
>>> provide any
>>> possible configuration where we can keep ECC bytes in
>>> main area
>>> itself. OOB + ECC data has to be in only spare area.
>> Healthy. I disike that "infix OOB" myself. It is however
>> a standard ECC mode in the NAND framework. :(
>> So you're asking about how to map hardware-specific
>> to the NAND framework? That wasn't clear.
Yes, that's right.
> I think better you use some of the bytes of OOB area , In
> almoost al NAND you can read 2K page size or 4K page size
> additinal you have to read OOB or spare area of NAND.
>>> Would it not be the good idea to perform read/write for
>>> full (2112 bytes) page?
>> I'm not sure I can answer that without reading up on that
>> particular NAND ECC engine.
>> Recall however that the NAND framework will think in terms
>> of 2KB reads, with OOB data on the side. There will be
>> separate reads for 2K and then 64 bytes.
The question is, how to involve 'main area bytes + OOB bytes (+ ECC
bytes, in case of reads)', while writing / reading a page to/from nand
>>> And enable HW_ECC before read/write and then call for
>>> ecc.calculate or
>>> ecc.correct accordingly. Rest all things can be taken
>>> care by
>>> underlying controller driver.
> I donot think when Hw_ecc is enable some software ECC
> calculation is required.
You may need SW algo to correct the errors indicated by HW generated ECCs.
>> Those sentences seem to elide critical parts of the
>> Like the details of OOB and ECC handling, which seem to be
>> what you're not sure of...
OOB area details are part of filesystem used in question. But we
certainly have control over defining layout for OOB area, which then
can be used by any upper layer SW component.
>> Linux MTD discussion mailing list
\/ | |\/| /-\ |_
----- ( )/ ( )
More information about the linux-mtd