summaryrefslogtreecommitdiff
path: root/cpu/arm926ejs/davinci/i2c.c
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 /cpu/arm926ejs/davinci/i2c.c
parent0b7c5639891f4103a0e31ec7ae0beb3e97ed3836 (diff)
downloadu-boot-imx-9b05aa788bfdd3264ff1bc9418cb19550a7234e4.zip
u-boot-imx-9b05aa788bfdd3264ff1bc9418cb19550a7234e4.tar.gz
u-boot-imx-9b05aa788bfdd3264ff1bc9418cb19550a7234e4.tar.bz2
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 'cpu/arm926ejs/davinci/i2c.c')
0 files changed, 0 insertions, 0 deletions