
On Sat, Aug 30, 2008 at 05:06:55PM -0400, Hugo Villeneuve wrote:
ARM DaVinci: Fix broken HW ECC for large page NAND.
Signed-off-by: Hugo Villeneuve hugo.villeneuve@lyrtech.com
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.
Applied to u-boot-nand-flash. Next time, please put the commit message above the "---", except for extra commentary that isn't intended to go into the git history.
-Scott