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.

AM625: Failed in flashing SBL using MCU+SDK V9.02

Part Number: AM625
Other Parts Discussed in Thread: UNIFLASH

Hello experts,
I'm trying to optimize boot time of Linux using this link and while perfoming steps for reducing bootloader time from link, but while flashing SBL using "

default_sbl_emmc_linux.cfg" this config file I'm getting below error.

repl@repl-HP-EliteBook-840-G4:~/ti/mcu_plus_sdk_am62x_09_02_00_38/tools/boot$ sudo python3 uart_uniflash.py -p /dev/ttyUSB0 --cfg=sbl_prebuilt/am62x-sk/default_sbl_emmc_linux.cfg

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

Executing command 1 of 9 ...
Found flash writer ... sending sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.tiimage
Sent flashwriter sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.tiimage of size 247105 bytes in 23.66s.                                                                         

Executing command 2 of 9 ...
Command arguments : --file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage1/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage1.release.out --operation=flash --flash-offset=0x0
Sending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage1/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage1.release.out.part1: 1054742bytes [01:42, 10719.26bytes/s]error_count reached 16, aborting.                                                                                 
Sending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage1/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage1.release.out.part1: 1054744bytes [01:42, 10719.26bytes/s]
[ERROR] XMODEM recv failed, no response OR incorrect response from EVM OR cancelled by user,
Power cycle EVM and run this script again !!!


What is reason behind failing of this script?

Thanks & Regards,
Aditya T

  • Hello,

    Please use the unmodified `default_sbl_emmc_linux.cfg` as shown below

    ~/ti/mcu_plus_sdk/am62x/09_02_00_38/tools/boot
    ❯ /usr/bin/cat sbl_prebuilt/am62x-sk/default_sbl_emmc_linux.cfg
    #-----------------------------------------------------------------------------#
    #                                                                             #
    #      DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT      #
    #                                                                             #
    #-----------------------------------------------------------------------------#
    #
    # By default this config file,
    # - points to pre-built flash writer, bootloader for this EVM
    # - The application image points to relative path of the ipc rpmsg linux application image for this EVM
    #   - Make sure this application is built before running this script
    # - You can customized this config file to point to your own bootloader and/or application images
    # - You can use --operation=flashverify-emmc if you just want to verify the flash contents and not flash the file.
    #
    
    
    # First point to sbl_uart_uniflash_stage1 binary, which initialises DDR and receives sbl_uart_uniflash_stage2 binary
    --flash-writer=sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.tiimage
    
    # When sending sbl_uart_uniflash_stage2 binary make sure to flash at SOC memory offset 0x0.
    # Points to sbl_uart_uniflash_stage2 binary, which function's as a server to flash one or more files to eMMC
    --file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage --operation=flash --flash-offset=0x0
    
    # Now send one or more files to flash or flashverify as needed. The order of sending files does not matter
    
    # When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0 of eMMC
    --file=sbl_prebuilt/am62x-sk/sbl_emmc_linux_stage1.release.tiimage --operation=flash-emmc --flash-offset=0x0
    
    # 2nd stage bootloader is flashed at 0x80000 or to whatever offset your bootloader is configured for
    --file=../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_emmc_linux_stage2.release.appimage --operation=flash-emmc --flash-offset=0x80000
    
    # When sending application image, make sure to flash at offset 0x100000 (default) or to whatever offset your bootloader is configured for
    --file=../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/m4fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage --operation=flash-emmc --flash-offset=0x100000
    
    # HSM image is flashed at 0x800000 or to whatever offset your bootloader is configured for
    --file=../../tools/boot/HSMAppimageGen/board/am62x-sk/hsm.appimage --operation=flash-emmc --flash-offset=0x800000
    
    # DM image is flashed at 0xa00000 or to whatever offset your bootloader is configured for
    --file=../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62x-sk/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage --operation=flash-emmc --flash-offset=0xA00000
    
    # Linux image is flashed at 0xC00000 or to whatever offset your bootloader is configured for
    --file=../../tools/boot/linuxAppimageGen/board/am62x-sk/linux.appimage --operation=flash-emmc --flash-offset=0xC00000
    
    # u-boot.img is flashed at 0x280000
    --file=../../tools/boot/linuxAppimageGen/board/am62x-sk/u-boot.img --operation=flash-emmc --flash-offset=0x280000
    
    

    Also, please note we don't support the GP devices from MCU+ SDK v9.0 onwards. So, in case the flashing fails even after using the correct config file, we won't be able to support it.

    Regards,

    Prashant

  • Hello,

    please note we don't support the GP devices from MCU+ SDK v9.0 onwards. So, in case the flashing fails even after using the correct config file, we won't be able to support it.

    1. In this case, I need to migrate to HS-FS or HS-SE device first, then try to run the SBL flashing. Am I right?

    2. If can't flash the SBL in GP devices, then how to optimize the boot time using Falcon mode?

    Thanks & Regards,
    Aditya T

  • Hello,

    1. In this case, I need to migrate to HS-FS or HS-SE device first, then try to run the SBL flashing. Am I right?

    Yes. Please note the GP devices cannot be converted into HS-FS or HS-SE devices. The HS device is shipped in HS-FS state (by TI) and later converted into HS-SE (by the customer).

    The TI AM62x HS-FS board can be found here: https://www.ti.com/tool/SK-AM62B

    2. If can't flash the SBL in GP devices, then how to optimize the boot time using Falcon mode?

    I did not say you can't. You can try flashing with the correct config file. If it flashes successfully and everything boots fine then it's great otherwise we will be limited in the support.

    Regards,

    Prashant

  • Hello,

    Yes. Please note the GP devices cannot be converted into HS-FS or HS-SE devices. The HS device is shipped in HS-FS state (by TI) and later converted into HS-SE (by the customer).

    If this is not possible, then there's link given in Ti's document for it: the link, which says "GP to HS-FS Migration Guide"

    I did not say you can't. You can try flashing with the correct config file. If it flashes successfully and everything boots fine then it's great otherwise we will be limited in the support.

    Can you guide which is correct config file for my case then?

    Thanks & Regards,
    Aditya T

  • Hello,

    If this is not possible, then there's link given in Ti's document for it: the link, which says "GP to HS-FS Migration Guide"

    If you follow the guide, you should realize that it is intended for understanding the GP/HS-FS differences and porting the software developed for GP device to HS-FS device. It does not talk about how you can convert GP to HS-FS which is not possible at all.

    Can you guide which is correct config file for my case then?

    The flashing logs you shared has the following as the second command:

    Executing command 2 of 9 ...
    Command arguments : --file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage1/am62x-sk/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage1.release.out --operation=flash --flash-offset=0x0

    while the original default_sbl_emmc_linux.cfg has the following as the second command

    So, it is clear you have modified this config file for some reasons. What I suggested was to use the original config file without any changes.

    FYI, in the below thread, one customer reported that the SBL_EMMC_LINUX from MCU+ SDK v9.0/v9.1 does not boot successfully on GP devices.

    (+) AM625: EMMC to Barmetal Code - Processors forum - Processors - TI E2E support forums

    So, I am guessing it will be the same for you. You can try it out. If it works it's great otherwise we will not be able to support the issue.

    Regards,

    Prashant