query: nand read/write method for 2048 + 64 byte page

vimal singh vimal.newwork at gmail.com
Tue Jun 23 07:47:47 EDT 2009


I am implementing BCH HW ECC method (present in omap2/3), which can
provide ECC protection
for spare area bytes too, along with main area bytes.
Below are few details:
1. It is a large page NAND device
2. We are looking for upto 4-bit error correction (for each 512 + 9 bytes)

Nand has 2048 + 64 bytes page size. (main area + spare area). The
layout I am creating is:
(all other possible layouts are similar to this only for this HW ECC scheme)

|<------main area, divided into 4-sectors----->|<-----Protected spare
area------>|<----------ECC bytes-------->|
|   512      +    512    +    512    +    512      |    9    +    9
+    9    +    9    |   7   +   7   +   7   +   7    |
|<-- 1st --> <-- 2nd --> <-- 3rd --> <-- 4th -->|<-1st-> <-2nd->
<-3rd-> <-4th->|<1st> <2nd> <3rd> <4th>|

i.e. 7 ECC bytes (52 bits in actual) for each 512 + 9 bytes (main +
spare), to correct up to 4- errors.


My concern is that, none of the present ECC scheme (in nand_base.c)
seems suitable for this.
Do I need to implement new ECC scheme, and hence new read / write API's?

In that case too, main question is: how to handle oob read/write for
such layout? (where spare
area bytes are protected along with main are ECC)

Any suggestion / help is appreciated.
Thanks in advance.

---
Regards,
Vimal



More information about the linux-mtd mailing list