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.

LP-AM243: MCU+SDK 8.4.0.17: Flash tools are hardware dependent?

Part Number: LP-AM243
Other Parts Discussed in Thread: UNIFLASH

Hi experts,

I am using the LP-AM243 and MCU+SDK. I imported the enet_lwip_cpsw example, and tried to flash it as a XIP application with the sml_uart tool. This worked fined with ond board, bot failed with three others. All of them are "PROC109E3", but the ones that are not working have an additional sticker "PROC109E3B(001).

The output of the sbl_uart tool in case of failure is one of the following:

C:\pro\1900\peripheraltests\common\boot>python C:\DevTools\TI\mcu_plus_sdk_am243x_08_05_00_24\tools\boot\uart_uniflash.py -p COM4 --cfg=enet_lwip_cpsw_am243x-lp_r5fss0-0_freertos_ti-arm-clang.cfg

Parsing config file ...
Parsing config file ... SUCCESS. Found 5 command(s) !!!

Executing command 1 of 5 ...
Found flash writer ... sending C:/DevTools/TI/mcu_plus_sdk_am243x_08_05_00_24/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiimage
Sending C:/DevTools/TI/mcu_plus_sdk_am243x_08_05_00_24/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiimaSending C:/DevTools/TI/mcu_plus_sdk_am243x_08_05_00_24/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiimaSending C:/DevTools/TI/mcu_plus_sdk_am243x_08_05_00_24/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiimaSending C:/DevTools/TI/mcu_plus_sdk_am243x_08_05_00_24/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiima Sent flashwriter C:/DevTools/TI/mcu_plus_sdk_am243x_08_05_00_24/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiimage of size 294772 bytes in 29.53s.

Executing command 2 of 5 ...
Command arguments : --operation=flash-phy-tuning-data
Sending flash-phy-tuning-data_command: 0%| | 0/32 [00:00<?, ?bytes/s]send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'2'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'0'
send error: expected NAK, CRC, EOT or CAN; got b'1'
send error: expected NAK, CRC, EOT or CAN; got b'1'
Sending flash-phy-tuning-data_command: 6%|██▌ | 2/32 [00:01<00:59, 1.99s/bytes]
[ERROR] XMODEM send failed, no response OR incorrect response from EVM OR cancelled by user,
Power cycle EVM and run this script again !!!

or

C:\pro\1900\peripheraltests\common\boot>python C:\DevTools\TI\mcu_plus_sdk_am243x_08_04_00_17\tools\boot\uart_uniflash.py -p COM19 --cfg=enet_lwip_cpsw_am243x-lp_r5fss0-0_freertos_ti-arm-clang.cfg

Parsing config file ...
Parsing config file ... SUCCESS. Found 4 command(s) !!!

Executing command 1 of 4 ...
Found flash writer ... sending C:/DevTools/TI/mcu_plus_sdk_am243x_08_04_00_17/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiimage
Sending C:/DevTools/TI/mcu_plus_sdk_am243x_08_04_00_17/tools/boot/sbl_prebuilt/am243x-lp/sbl_uart_uniflash.release.tiim
[ERROR] XMODEM send failed, no response OR incorrect response from EVM OR cancelled by user,
Power cycle EVM and run this script again !!!

Is this issue known? How can I flash an E3B board?

Where can I find the E3B board documentation?

BR

Alexander

  • Hello Alexander,

    The boot mode for these boards are set by the bank of 8 switches that are, per your image / board orientation, on the top left side of the board. You'll see that on your working boards, the switches are set differently than on your three not-working boards.

    You can find the specific details at this page in our MCU+ Academy: https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/EVM_SETUP_PAGE.html#EVM_FLASH_SOC_INIT

    Please check if adjusting the switch locations is sufficient to get this example working consistently across all four of your boards.

    Best Regards,

    Ralph Jacobi

  • The switches on the working board are set to FLASH boot mode, because the example has been successfully programmed and is successfully running from flash. Of course, I used the UART boot mode to program the flash.

    The switches on the non-working boards, in my opinion, are correctly set to UART boot mode. In this state the programming did not work. So there was no reason to try booting from flash.

    BR

    Alexander

  • Hello Alexander,

    Sorry for my oversight on the switch settings versus the specific error, agreed on your comments. I've been trying to replicate the issue on my own LP-AM243 but I haven't been able to do so yet. Regarding the initial part about sticker / documentation for 'E3B' boards etc. - looking across the images the board revision is the same given the PCB# doesn't differ. Thus I don't believe the sticker would indicate any hardware changes as otherwise I would expect the PCB# to be updated.

    One suggestion would be to power cycle each device just before executing the python scripts. I have heard of cases, particularly when a terminal window is opened beforehand to verify the 'C' output before being closed, when a power cycle of the device will allow for the boot script to work once re-powered.

    Best Regards,

    Ralph Jacobi

  • Hello Alexander,

    I deeply apologize for the time it has taken to get a resolution for you on what should have been a very quick fix, but I have gotten a lot of new information about what was happening with these boards.

    For starters I was incorrect with my comment about the stickers - I have found out that those are in fact relevant here as the E3B stickers were placed on boards that are using our newer High Security - Field Securable (HS-FS) silicon. The original board you used has our General Purpose (GP) silicon on it as was the board I had tested.

    The relevance when it comes to that is that there is a different process for boot loading required for HS-FS devices which are documented.

    The most important resource I can provide is the following migration guide page: https://dev.ti.com/tirex/content/mcu_plus_sdk_am243x_08_05_00_24/docs/api_guide_am243x/HSFS_MIGRATION_GUIDE.html

    This guide walks through the differences between GP and HS-FS devices, what images are required to load into the board, and what the recommended flow is for doing so.

    The key element for your specific use case is the Application boot using SBL (SBL OSPI, SBL NULL, SBL UART, SBL SD etc.) I've copy pasted that section here for your immediate reference:

    Since most of the differences in HS-FS is related to image signing, once the SBL and application image is correctly built, rest of the flow is the same as GP for application boot. Take care that the right images are used. For example, to use SBL NULL for your application boot, flash the sbl_null.release.hs_fs.tiimage image. Same goes for other SBLs.

    The understanding I have gained since my last uninformed post is that if you follow the above, you will be able to successfully use the SBL UART to flash the three boards you have with the E3B sticker.

    Best Regards,

    Ralph Jacobi

  • Hello Ralph,

    thanks for your detailed explanation. It worked!

    Best regards,

    Jan