[MTD] [NAND] Hardware ECC controller on at91sam9263 / at91sam9260
authorRichard Genoud <richard.genoud@gmail.com>
Wed, 23 Apr 2008 17:51:14 +0000 (19:51 +0200)
committerDavid Woodhouse <dwmw2@infradead.org>
Wed, 23 Apr 2008 22:34:28 +0000 (23:34 +0100)
This is a patch to use the hardware ECC controller of
the AT91SAM9260 and AT91SAM9263 for the AT91 nand.
On AT91 NAND, there's now a choice between ECC soft,
ECC hard or no ECC (for debug).

It has been tested on AT91SAM9263 with 8 bits large
and small page NAND.

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
drivers/mtd/nand/Kconfig
drivers/mtd/nand/at91_nand.c

index dcbb0de..5076faf 100644 (file)
@@ -278,6 +278,47 @@ config MTD_NAND_AT91
        help
          Enables support for NAND Flash / Smart Media Card interface
          on Atmel AT91 processors.
+choice
+       prompt "ECC management for NAND Flash / SmartMedia on AT91"
+       depends on MTD_NAND_AT91
+
+config MTD_NAND_AT91_ECC_HW
+       bool "Hardware ECC"
+       depends on ARCH_AT91SAM9263 || ARCH_AT91SAM9260
+       help
+         Uses hardware ECC provided by the at91sam9260/at91sam9263 chip
+         instead of software ECC.
+         The hardware ECC controller is capable of single bit error
+         correction and 2-bit random detection per page.
+
+         NB : hardware and software ECC schemes are incompatible.
+         If you switch from one to another, you'll have to erase your
+         mtd partition.
+
+         If unsure, say Y
+
+config MTD_NAND_AT91_ECC_SOFT
+       bool "Software ECC"
+       help
+         Uses software ECC.
+
+         NB : hardware and software ECC schemes are incompatible.
+         If you switch from one to another, you'll have to erase your
+         mtd partition.
+
+config MTD_NAND_AT91_ECC_NONE
+       bool "No ECC (testing only, DANGEROUS)"
+       depends on DEBUG_KERNEL
+       help
+         No ECC will be used.
+         It's not a good idea and it should be reserved for testing
+         purpose only.
+
+         If unsure, say N
+
+         endchoice
+
+endchoice
 
 config MTD_NAND_PXA3xx
        bool "Support for NAND flash devices on PXA3xx"
Simple merge