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.

AM6421: AM6421 UART Boot : Specific units fail to transfer program via Xmodem

Part Number: AM6421

Symptom

During our production, factory use UART to boot-load the program. 7 out of 1000 units failed the firmware download step. The factory returned 2 of the failed units to us. Testing on these 2 chips in the lab shows the following: 

  • After power-on, the chip correctly enters UART Boot mode; the Xmodem-1K handshake completes normally (AM64 side transmits the 'C' initiation character)
  • Tera Term successfully sends packet #1, and the AM64 side returns ACK
  • Around the time of sending packet #2~6, the AM64 side completely stops responding — no ACK, no NAK is received; Tera Term eventually times out and the firmware is not written into the chip

The attached serial log is a complete capture of one failure on the chip..0330_Xmodem_fail.txt

Reproduction & Isolation

  • Factory tried to replacing the failing AM64 with a fresh unit resolved the issue.
  • Repeated retries on the failing chips (power-cycle + reconnect) reproduce the same failure at approximately the same packet index

Please help us analyse this issue.
Thanks!

  • Hello Li,

    Please give me a little more time to review your query. I will be able later today or tomorrow.

    Thanks,

    Stan

  • Hello Li Jiefei,

    Around the time of sending packet #2~6, the AM64 side completely stops responding — no ACK, no NAK is received; Tera Term eventually times out and the firmware is not written into the chip

    May I ask if this is happening every time on 7 failed devices or sometimes UART boot succeeds? Did you try also USB boot?

    It could be you are observing the below intermittent limitation but it could be something else:

  • Hello Stanislav Stilyanov,

    For the failed board I tested, this issue happens every time.
    The factory reported that on another failed board, the transfer usually breaks at around 10% in Xmodem transfer.
    Our board does not support USB boot, so we cannot try that path.

    Regarding the i2371 case, is using a different boot method the only workaround, or is there any fix available on the UART boot side?

  • Hi Stan

    Customer report that this issue can be 100% reproducable on 7 failed devices. 

    The jira shows that ROM may trigger the ROM hang, but not 100%. So seems this issue has no relationship with this Jira. 

    Hi Jiefei

    Can you try do a ABA test as below:

    Let's say you have PCBA + AM64, 7 devices with ISSUE.

    You had test the PCBA(From 7 devices) + New AM64 can work normally, right?

    Did you use AM64(From 7 issue devices) + good PCBA(Good device from factory line) to see if it works?

    This experiment will provide the clue if SOC or PCB has issue.

    Thanks

    Zekun

  • Hi Stan

    Update the test result here:

    PCBA(From 7 devices) + New AM64 can work normally

    AM64(From 7 issue devices) + good PCBA(Good device from factory line)  can not work.

    Any ideas about this?

    Thanks

    Zekun

  • Hello Li, Zekun,

    Thank you for the updates and questions.

    Stan will be able to respond later today.

    Thanks

    Best Regards

    Anastas Yordanov

  • Hi  Anastas, Stan

    Since this issue is found in mess production and affect customer production line, and this is China Tops Industry customer, so please prioritize this internally.

    Thanks

    Zekun

  • Hi Zekun,

    Ok, so now we are confident it is internal issue on 7 out of 1000 devices.

    You are right, failing UART boot may be due to i2371  but may be due other internal issue like e.g. damage due to ESD surge.

    The point is, since first stage UART boot is conducted by ROM code and there is no other software is loaded, therefore the only way to interact with ROM code is via BOOTMODE pins. There are 2 issues here:

    - BOOTMODE pins do not change UART boot in any way including baud speed and other UART settings

    - BOOTMODE pins can select another peripheral to boot from, however as I understand there is no option to boot from USB or SDCARD

    So there aren't many options to proceed from here. Two questions from me that may or may not help:

    • Do you have means for all or some BOOTMODE pins switching on PCB?
    • Do you have SDCARD slot or pins to attach one?
    • Do you have JTAG header  on PCB?

    At last but not least, it all cases, i2371 doesn't state the frequency of failure plus there is no workaround,  therefore TI cannot guarantee the support UART boot in this device.

    Best Regards.

    Stan

  • Hi Stanislav Stilyanov,
    for questions you asked:
    1. We can change bootmode pins in our PCB
    2. We don't have SDCARD slot;
    3. We have JTAG on PCB;
    BR,
    Jeff

  • Hi,

    Sorry for delayed response. 

    If I'm understanding correctly, the product doesn't have any serial interface capable to load software to flash.

    My rough idea is if you are able load a binary image to OSPI  (if this your type of  flash memory) via JTAG like described in SDK:

    AM64x MCU+ SDK: Flashing Tools

    REgards,

    Stan