• pekon gupta's avatar
    mtd: nand: omap: add CONFIG_NAND_OMAP_ECCSCHEME for selection of ecc-scheme · 3f719069
    pekon gupta authored
    
    
    This patch adds new CONFIG_NAND_OMAP_ECCSCHEME, replacing other distributed
    CONFIG_xx used for selecting NAND ecc-schemes.
    This patch aims at solving following issues.
    
    1) Currently ecc-scheme is tied to SoC platform, which prevents user to select
       other ecc-schemes also supported in hardware. like;
     - most of OMAP3 SoC platforms use only 1-bit Hamming ecc-scheme, inspite
       the fact that they can use higher ecc-schemes like 8-bit ecc-schemes with
       software based error detection (OMAP_ECC_BCH4_CODE_HW_DETECTION_SW).
     - most of AM33xx SoC plaforms use 8-bit BCH ecc-scheme for now, but hardware
       supports BCH16 ecc-scheme also.
    
    2) Different platforms use different CONFIG_xx to select ecc-schemes, which
       adds confusion for user while migrating platforms.
     - *CONFIG_NAND_OMAP_ELM* which enables ELM hardware engine, selects only
        8-bit BCH ecc-scheme with h/w based error-correction (OMAP_ECC_BCH8_CODE_HW)
        whereas ELM hardware engine supports other ecc-schemes also like; BCH4,
        and BCH16 (in future).
     - *CONFIG_NAND_OMAP_BCH8* selects 8-bit BCH ecc-scheme with s/w based error
        correction (OMAP_ECC_BCH8_CODE_HW_DETECTION_SW).
     - *CONFIG_SPL_NAND_SOFTECC* selects 1-bit Hamming ecc-scheme using s/w library
    
    Thus adding new *CONFIG_NAND_OMAP_ECCSCHEME* de-couples ecc-scheme dependency
    on SoC platform and NAND driver. And user can select ecc-scheme independently
    foreach board.
    However, selection some hardware based ecc-schemes (OMAP_ECC_BCHx_CODE_HW) still
    depends on presence of ELM hardware engine on SoC. (Refer doc/README.nand)
    
    Signed-off-by: default avatarPekon Gupta <pekon@ti.com>
    3f719069