This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3530: NAND Flash usage issues

Part Number: OMAP3530
  • The chip I am using is OMAP3530,and the nand flash is TH58NYG3S0HBAI4 . The nand flash datasheet  said, 8 bit ECC for each 512Byte is required.   

  • Omap RootRom only complete 1bit correction.  How can I get omap to use this nand chip?

  • Hi,

    This could be a challenge.

    The OMAP3530 is a mature device. Its ROM code was written before NAND flash parts adopted the ONFI protocol. Back then 1-bit error correction was sufficient to read at least block 0 of SLC NANDs.

    I would recommend trying to use a different NAND from the same era as the OMAP3530, like the Micron MT29F1. This NAND allows you to use 1-bit ECC on the first page if PROGRAM/ERASE cycles are less than 1000. https://www.digikey.com/en/products/detail/micron-technology-inc/MT29F1G08ABAEAH4-AITX-E-TR/6135563

    If you really want to use the Kioxia/Toshiba NAND you mentioned...
    You might be able to utilize the BOOTROM's proprietary error correction scheme intended to be used with MLC NAND devices from that time. Nowadays MLC NANDs require ~24 bits of ECC per 512 byte sector, but when the OMAP3530 ROM code was written 4-8 bits was sufficient for MLC. The error correction scheme used by ROM is a combination of BCH, checksum, and redundancy techniques.
    Refer to 25.4.7.4.3 MLC NAND Read Sector Procedure

    I do not know details about the NAND writer, and how it computes the proprietary ECC scheme. You must also check if the device ID is listed in in the OMAP35x TRM (SPRUF98Y) Table 25-32. Supported NAND Devices.

    Recently there have been SLC NAND devices that require just 1-bit ECC. You could also check their device IDs against Table 25-32. Supported NAND Devices. Since the OMAP3530 does not use the ONFI protocl to gather the NAND parameters, you will also need to check that the NAND will return the expected data when the ROM Bootloader tries to read it. Refer to TRM 25.4.7.4.1 Initialization and NAND Detection

    Some NANDs available today with 1-bit ECC (not a complete list):

    SkyHigh S34ML08G1, S34MS01G1, S34ML01G1

    Micron MT29F1G08ABADAWP

    Winbond W29N01GV, W29N01GZ/W, W29N01HV, W29N01HZ/W

    I would not expect a NAND with internal-ECC to work with the OMAP3530 bootloader, since the ROM code will always try to read the OOB spare area from the NAND and compute its own ECC. With internal ECC, the NAND error management utilizes the OOB spare area to store the error correction codes.

    Hope this helps,
    Mark