summaryrefslogtreecommitdiffstats
path: root/doc/README.nand
diff options
context:
space:
mode:
authorHugo Villeneuve <hugo.villeneuve@lyrtech.com>2008-08-30 17:06:55 -0400
committerScott Wood <scottwood@freescale.com>2008-09-10 11:40:30 -0500
commit9b05aa788bfdd3264ff1bc9418cb19550a7234e4 (patch)
treeca6159b8743ad6d92abb021e003b3978cf16427b /doc/README.nand
parent0b7c5639891f4103a0e31ec7ae0beb3e97ed3836 (diff)
downloadu-boot-9b05aa788bfdd3264ff1bc9418cb19550a7234e4.tar.gz
u-boot-9b05aa788bfdd3264ff1bc9418cb19550a7234e4.tar.xz
u-boot-9b05aa788bfdd3264ff1bc9418cb19550a7234e4.zip
ARM DaVinci: Fix broken HW ECC for large page NAND.
Based on original patch by Bernard Blackham <bernard@largestprime.net> U-boot's HW ECC support for large page NAND on Davinci is completely broken. Some kernels, such as the 2.6.10 one supported by MontaVista for DaVinci, rely upon this broken behaviour as they share the same code for ECCs. In the existing scheme, error detection *might* work on large page, but error correction definitely does not. Small page ECC correction works, but the format is not compatible with the mainline git kernel. This patch adds ECC code that matches what is currently in the Davinci git repository (since NAND support was added in 2.6.24). This makes the ECC and OOB layout written by u-boot compatible with Linux for both small page and large page devices and fixes ECC correction for large page devices. The old behaviour can be restored by defining the macro CFG_DAVINCI_BROKEN_ECC, which is undefined by default. Signed-off-by: Hugo Villeneuve <hugo.villeneuve@lyrtech.com> Acked-by: Sergey Kubushyn <ksi@koi8.net> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'doc/README.nand')
-rw-r--r--doc/README.nand8
1 files changed, 8 insertions, 0 deletions
diff --git a/doc/README.nand b/doc/README.nand
index 171380e274..6dac24cd90 100644
--- a/doc/README.nand
+++ b/doc/README.nand
@@ -174,6 +174,14 @@ More Definitions:
#define NAND_MAX_FLOORS 1
#define NAND_MAX_CHIPS 1
+ #define CFG_DAVINCI_BROKEN_ECC
+ Versions of U-Boot <= 1.3.3 and Montavista Linux kernels
+ generated bogus ECCs on large-page NAND. Both large and small page
+ NAND ECCs were incompatible with the Linux davinci git tree (since
+ NAND was integrated in 2.6.24).
+ Turn this ON if you want backwards compatibility.
+ Turn this OFF if you want U-Boot and the Linux davinci git kernel
+ to use the same ECC format.
NOTE:
=====