Skip to content
  • pekon gupta's avatar
    mtd: nand: omap: fix ecc-layout for HAM1 ecc-scheme · 69cc97f8
    pekon gupta authored
    As per OMAP3530 TRM referenced below [1]
    
    For large-page NAND, ROM code expects following ecc-layout for HAM1 ecc-scheme
     - OOB[1] (offset of 1 *byte* from start of OOB) for x8 NAND device
     - OOB[2] (offset of 1 *word* from start of OOB) for x16 NAND device
    
    Thus ecc-layout expected by ROM code for HAM1 ecc-scheme is:
     *for x8 NAND Device*
     +--------+---------+---------+---------+---------+---------+---------+
     | xxxx   | ECC[A0] | ECC[A1] | ECC[A2] | ECC[B0] | ECC[B1] | ECC[B2] | ...
     +--------+---------+---------+---------+---------+---------+---------+
    
     *for x16 NAND Device*
     +--------+--------+---------+---------+---------+---------+---------+---------+
     | xxxxx  | xxxxx  | ECC[A0] | ECC[A1] | ECC[A2] | ECC[B0] | ECC[B1] | ECC[B2] |
     +--------+--------+---------+---------+---------+---------+---------+---------+
    
    This patch fixes ecc-layout *only* for HAM1, as required by ROM-code
    For other ecc-schemes like (BCH8) ecc-layout is same for x8 or x16 devices.
    
    [1] OMAP3530: http://www.ti.com/product/omap3530
        TRM: http://www.ti.com/litv/pdf/spruf98x
    
    
    		Chapter-25: Initialization Sub-topic: Memory Booting
    		Section: 25.4.7.4 NAND
    		Figure 25-19. ECC Locations in NAND Spare Areas
    
    Reported-by: default avatarStefan Roese <sr@denx.de>
    Signed-off-by: default avatarPekon Gupta <pekon@ti.com>
    Tested-by: default avatarStefan Roese <sr@denx.de>
    69cc97f8