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.

AM3352: NAND on-die ECC

Part Number: AM3352

Hi!

I have boards assembled with AM3352 and MT29F1G08ABAFAWP-ITE:F. After compiling regular u-boot I tested it on a non-ECC nand MT29F1G08ABAEAWP, and it worked flawlessly. But when I try to boot my u-boot on the device with MT29F1G08ABAFAWP-ITE:F I can see only infinite CCCCCC symbols, which means internal BootROM does not recognize MLO file. After searching the web I found numerous requests for how to disable/enable ECC based NAND with AM335x processors and did not find any solution.

Please help me to enable ECC NAND with AM335x, because I have 10000 boards assembled and it is a disaster for me :)

  • Maxim,

    there are two concerns here:

    1. Compatibility of the AM335x ROM code with that particular Flash memory. I cannot access the device datahseet but according to this LKML discussion here https://lore.kernel.org/patchwork/cover/951142/ this device has a non-standard ONFI revision number which could be the reason the ROM is rejecting it (assuming this is what is happening). The AM335x TRM states the ROM checks the ONFI signature (which this device reports as "ONFI", first 4 bytes) so that's good but the TRM does not clarify if the overall check includes checking the ONFI revision fields (bytes 5 & 6) or not.
    2. Compatibility of MLO/U-Boot with that device which has on-chip ECC always enabled (also according to above post). This is what most other ECC related discussions in the E2E are about, regarding the current lack of being able to easily disable ECC on MLO/U-Boot for AM335x. However since this is "just" software, once should be able to work through that if sufficiently motivated

    So let's think about 1 some more which is your most pressing issue. Some ideas...

    • ROM-based ECC checking can be disabled via the SYSBOOT[9] signal by setting it to HIGH. Can you try this and see if this makes any difference.
    • The AM335x device has a boot mode called NANDI2C, that allows you to manually specify NAND parameters through an external EEPROM. You could prototype with that to see if this approach allows you to boot. While this is probably not a practical solution to rework your 10,000 boards you could at least use this to confirm that the ROM being able to correctly identify your Flash is really the issue here.

    Regards, Andreas

  • Dear Andreas,

    pulling HIGH the SYSBOOT[9] signal completely resolved the issue! Thank you VERY MUCH!