• Philip Avinash's avatar
    mtd: nand: omap2: Support for hardware BCH error correction. · 62116e51
    Philip Avinash authored
    ELM module can be used for hardware error correction of BCH 4 & 8 bit.
    ELM module functionality is verified by checking the availability of
    handle for ELM module in device tree. Hence supporting
    1. ELM module available, BCH error correction done by ELM module. Also
    support read & write page in one shot by adding custom read_page and
    write_page methods. This helps in optimizing code for NAND flashes with
    page size less than 4 KB.
    2. If ELM module not available fall back to software BCH error
    correction support.
    
    New structure member is added to omap_nand_info
    1. "is_elm_used" to know the status of whether the ELM module is used for
       error correction or not.
    2. "elm_dev" device pointer to elm device on detection of ELM module.
    
    Also being here update the device tree documentation of gpmc-nand for
    adding optional property elm_id.
    
    Note:
    ECC layout uses 1 extra bytes for 512 byte of data to handle erased
    pages. Extra byte programmed to zero for programmed pages. Also BCH8
    requires 14 byte ecc to maintain compatibility with RBL ECC layout.
    This results a common ecc layout across RBL, U-boot & Linux with BCH8.
    Signed-off-by: default avatarPhilip Avinash <avinashphilip@ti.com>
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    62116e51
omap2.c 57.7 KB