• Hugo Villeneuve's avatar
    ARM DaVinci: Fix broken HW ECC for large page NAND. · 9b05aa78
    Hugo Villeneuve authored
    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: default avatarHugo Villeneuve <hugo.villeneuve@lyrtech.com>
    Acked-by: default avatarSergey Kubushyn <ksi@koi8.net>
    Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
    9b05aa78
README.nand 9.5 KB