Commit 9b05aa78 authored by Committed by Scott Wood
ARM DaVinci: Fix broken HW ECC for large page NAND.
Based on original patch by Bernard Blackham <firstname.lastname@example.org> 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 <email@example.com> Acked-by: Sergey Kubushyn <firstname.lastname@example.org> Signed-off-by: Scott Wood <email@example.com>
Showing with 84 additions and 5 deletions