public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* Re: query: nand read/write method for 2048 + 64 byte page
@ 2009-06-26  4:28 David Brownell
  2009-06-26  5:17 ` vimal singh
  0 siblings, 1 reply; 8+ messages in thread
From: David Brownell @ 2009-06-26  4:28 UTC (permalink / raw)
  To: vimal.newwork; +Cc: Linux MTD

I noticed

 http://lists.infradead.org/pipermail/linux-mtd/2009-June/026133.html

I don't think I understand the question.  But I have two comments
that might help:

 - First, the ECC schemes don't dictate much about how the
   OOB area gets laid out, so what's the problem?  Just pick a
   layout that doesn't clobber manufacturer bad block markers
   and you'll be pretty much OK.  Stick all ECC at the end, to
   keep it simple.

 - Second, I believe that you will see some issues if you
   try to have ECC cover the OOB too.  Problem being that
   the raw_write primitives are used to write OOB data and
   they don't believe it will be ECC protected.

ECC_HW should probably work fine.  You'll just provide your
own ecclayout struct, and set things up so the NAND core knows
the hardware works in 512 byte chunks that give 7 byte each of
ECC data.

- Dave

^ permalink raw reply	[flat|nested] 8+ messages in thread
* query: nand read/write method for 2048 + 64 byte page
@ 2009-06-23 11:47 vimal singh
  0 siblings, 0 replies; 8+ messages in thread
From: vimal singh @ 2009-06-23 11:47 UTC (permalink / raw)
  To: linux-mtd

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-06-28  6:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-26  4:28 query: nand read/write method for 2048 + 64 byte page David Brownell
2009-06-26  5:17 ` vimal singh
2009-06-26  5:56   ` David Brownell
2009-06-26 11:22     ` vimal singh
2009-06-26 17:10       ` David Brownell
2009-06-27  5:17         ` Amit Kumar Sharma
2009-06-28  6:23           ` vimal singh
  -- strict thread matches above, loose matches on Subject: below --
2009-06-23 11:47 vimal singh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox