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.

AM623: Uart boot mode time out issue

Part Number: AM623
Other Parts Discussed in Thread: SK-AM62B-P1, SK-AM62

Hi, TI Expert

As ttitle description, I already reference this link, try to boot from uart

https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/Foundational_Components/U-Boot/UG-UART.html

Reference AM62 EVB

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1276094/faq-sk-am62-purpose-of-different-uarts/4839735?tisearch=e2e-sitesearch&keymatch=am62%25252520uart%25252520boot#4839735

MAIN_UART0: Used for Linux and U-Boot on A53

MAIN_UART1: TIFS logging console

WKUP_UART0: DM logging console

MCU_UART0: MCU+SDK console

Steps as below :

Step 1) switch dip switch to "uart boot mode", and make sure char "C" appears on /dev/ttyUSB0. Is ttyUSB0 "MCU_UART0"?

Step 2) Follow steps1, enter command as below

$ sx -kb /path/to/u-boot-spl.bin < /dev/ttyUSB0 > /dev/ttyUSB0
 

and we get no response as below, it seems pending. Do I miss something?

gibbs@gibbs-MS-7D17:~/work/am62x/am62x/ti-processor-sdk-linux-am62xxsip-evm-09.00.00.03/board-support/u-boot-build/a53/spl$ sx -kb ./u-boot-spl.bin < /dev/ttyUSB0 > /dev/ttyUSB0
Sending ./u-boot-spl.bin, 3108 blocks: Give your local XMODEM receive command now.
Xmodem sectors/kbytes sent:   0/ 0kRetry 0: Got 42 for sector ACK

Step 3) Use ROM code boot from uart, I think steps should be as below.

$ sb --xmodem $OUT_R5/tiboot3.bin > $UART_BOOT_MAIN_UART < $UART_BOOT_MAIN_UART
$ sb --ymodem $OUT_AXX/tispl.bin > $UART_BOOT_MAIN_UART < $UART_BOOT_MAIN_UART
$ sb --ymodem $OUT_AXX/u-boot.img > $UART_BOOT_MAIN_UART < $UART_BOOT_MAIN_UART

MAIN_UART0 is ttyUSB2, get console ouput pending as below.

gibbs@gibbs-MS-7D17:~/work/am62x/am62x/ti-processor-sdk-linux-am62xxsip-evm-09.00.00.03/board-support/u-boot-build/r5$ sb --xmodem ./tiboot3.bin > /dev/ttyUSB2 < /dev/ttyUSB2
Sending ./tiboot3.bin, 2295 blocks: Give your local XMODEM receive command now.
Xmodem sectors/kbytes sent:   0/ 0kRetry 0: Timeout on sector ACK
Retry 0: Timeout on sector ACK

Is some thing? Need your comment

Many Thanks

GIbbs

  • Hello Gibbs,
    - The step 2) is not necessary for AM62x SoC as it is applicable only to legacy SoC.
    - For step 3), the matching "tiboot3.bin" needs to be used. Please refer to the link on "tiboot3.bin" dependency on SoC device type (GP/HS-FS/HS-SE).
    software-dl.ti.com/.../Foundational_Components_Migration_Guide.html
    Best,
    -Hong

  • Hi, Hong

    My EVB version : SK-AM62B-P1, (PROC142A)

    I try to use pre-build binary for testing,

    Steps

    1)  Already make sure in uart boot mode, char 'C' appear on "/dev/ttyUSB0"

    2) Use pre build binary, switch to folder --> /ti-processor-sdk-linux-am62xx-evm-09.00.00.03/board-support/built-images

    3) cp GP version SBL binary --> cp tiboot3-am62x-gp-evm.bin tiboot3.bin

    4) xmodem send command --> sb --xmodem tiboot3.bin > /dev/ttyUSB0 < /dev/ttyUSB0

    But it is still no ACK.

    gibbs@gibbs-MS-7D17:~/work/am62/ti-processor-sdk-linux-am62xx-evm-09.00.00.03/board-support/built-images$ sb --xmodem tiboot3.bin > /dev/ttyUSB0 < /dev/ttyUSB0
    Sending tiboot3.bin, 2274 blocks: Give your local XMODEM receive command now.
    Xmodem sectors/kbytes sent:   0/ 0kRetry 0: Got 52 for sector ACK
    Retry 0: NAK on sector
    Retry 0: Got 5a for sector ACK
    Retry 0: NAK on sector
    Retry 0: Got 52 for sector ACK
    Retry 0: NAK on sector
    Retry 0: Got 52 for sector ACK
    

    Do I miss something?

    Is pre-build binary work?!

    Thanks

    Gibbs

  • Hello Gibbs,
    Have we checked the SoC device type on your board?
    software-dl.ti.com/.../Foundational_Components_Migration_Guide.html
    Best,
    -Hong

  • Hi, Hong

    Update as below.

    1. Already check it's HS-FS device, log as below

    gibbs@gibbs-MS-7D17:~/work/am62$ python parse_uart_boot_socid.py uart-boot-log.txt 
    -----------------------
    SoC ID Header Info:
    -----------------------
    ('NumBlocks            :', 2)
    -----------------------
    SoC ID Public ROM Info:
    -----------------------
    ('SubBlockId           :', 1)
    ('SubBlockSize         :', 26)
    ('DeviceName           :', 'am62x')
    ('DeviceType           :', 'HSFS')
    ('DMSC ROM Version     :', [0, 1, 0, 1])
    ('R5 ROM Version       :', [0, 1, 0, 1])
    -----------------------
    SoC ID Secure ROM Info:
    -----------------------
    ('Sec SubBlockId       :', 2)
    ('Sec SubBlockSize     :', 166)
    ('Sec Prime            :', 0)
    ('Sec Key Revision     :', 0)
    ('Sec Key Count        :', 0)
    ('Sec TI MPK Hash      :', 'd68ecb2c055dff11ade95bd927e837d2a53bc23b0a2800cebce4f106bcf309df2213912d77a157a8b7c2df40672a06a918034aa4c7d603e462481475225d49b8')
    ('Sec Cust MPK Hash    :', 'ad0bc40b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000')
    ('Sec Unique ID        :', 'd23943615f4413ca3d28e3ecd19368a0da8facbfe4c2f9f34b97487986cef21c')
    

    2. tiboot.bin success upload

    copy tiboot3-am62x-hs-fs-evm.bin tiboot3.bin

    gibbs@gibbs-MS-7D17:~/work/am62/ti-processor-sdk-linux-am62xx-evm-09.00.00.03/board-support/prebuilt-images/am62xx-evm$ sb --xmodem ./tiboot3.bin > /dev/ttyUSB0 < /dev/ttyUSB0
    Sending ./tiboot3.bin, 2295 blocks: Give your local XMODEM receive command now.
    Bytes Sent: 293888   BPS:7894                            
    
    Transfer complete
    

    3. Upload tispl.bin failed

    cp u-boot-spl.bin-am62xx-evm tispl.bin

    gibbs@gibbs-MS-7D17:~/work/am62/ti-processor-sdk-linux-am62xx-evm-09.00.00.03/board-support/prebuilt-images/am62xx-evm$ sb --ymodem ./tispl.bin > /dev/ttyUSB0 < /dev/ttyUSB0
    Sending: tispl.bin
    Ymodem sectors/kbytes sent:   2/ 0kRetry 0: Cancelled
    
    Transfer incomplete

    Not sure the reason, Why upload tispl.bin failed?

    Any suggestion?

    I think use "pre-build image"  should be work, isn't?

    Many Thnaks

    Gibbs

  • Hello Gibbs,
    Do we have boot log from serila terminal?
    I'm attaching a sample log from UART boot for your reference.
    Best,
    -Hong

    CCCCCCCCCCCC
    U-Boot SPL 2021.01-00001-g441d4eb-dirty (Oct 19 2022 - 17:23:37 -0500)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi')
    Trying to boot from UART
    CCxyzModem - CRC mode, 0(SOH)/915(STX)/0(CAN) packets, 4 retries
    Loaded 935808 bytes
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment
    
    init_env from device 7 not supported!
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.7(release):v2.7.0-dirty
    NOTICE:  BL31: Built : 16:41:25, Sep 27 2022
    
    U-Boot SPL 2021.01-00001-g441d4eb-dirty (Oct 19 2022 - 17:22:24 -0500)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi')
    Trying to boot from UART
    CCxyzModem - CRC mode, 0(SOH)/829(STX)/0(CAN) packets, 5 retries
    Loaded 847784 bytes
    
    
    U-Boot 2021.01-00001-g441d4eb-dirty (Oct 19 2022 - 17:22:24 -0500)
    
    SoC:   AM62X SR1.0 GP
    Model: Texas Instruments AM625 SK
    EEPROM not available at 0x50, trying to read at 0x51
    Board: AM62-SKEVM rev E2
    DRAM:  2 GiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2
    Loading Environment from MMC... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  2  0 
    => md.l 0x43000030 1
    43000030: 0000023b                               ;...

  • Hi, Hong

    Status update, problems solved.

    My opinion, Pls do not use default pre-build image! 

    Finally , I give up use "pre-build image", and try to re-build u-boot with DFU boot

    DFU boot fine, my binary folder as below:

    (1) /u-boot-build/r5$ sudo dfu-util -R -a bootloader -D tiboot3-am62x-hs-fs-evm.bin

    (2) u-boot-build/a53$ sudo dfu-util -R -a tispl.bin -D tispl.bin

    (3) /u-boot-build/a53$ sudo dfu-util -R -a u-boot.img -D u-boot.img

    Base on successful boot binary from DFU, we use these binary for uart boot.

    cp -f tiboot3-am62x-hs-fs-evm.bin tiboot3.bin  --> This steps is very important, because uart boot only recogize the "naming" is "tiboot3.bin"
    sb --xmodem tiboot3.bin > /dev/ttyUSB0 < /dev/ttyUSB0
     
    in u-boot_build/a53
    sb --ymodem tispl.bin > /dev/ttyUSB0 < /dev/ttyUSB0
    sb --ymodem u-boot.img > /dev/ttyUSB0 < /dev/ttyUSB0
    Gibbs

  • Hello Gibbs,
    I'm attaching a working log from UART boot using SDK 9.0 prebuilt binaries on SK-AM62.
    Best,
    -Hong

    �02000000011a0000616d3632780000000000000048535345010001000100010002a6000001000200d68ecb2c055dff11ade95bd927e837d2a53bc23b0a2800cebce4f106bcf309df2213912d77a157a8b7c2df40672a06a918034aa4c7d603e462481475225d49b81f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189760dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527da448518777f249d544b2894f38b2ce22b24b16a9cfa34bca03053d8356e19c2eCC
    U-Boot SPL 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    SPL initial stack usage: 13376 bytes
    Trying to boot from UART
    CCLoaded 1138011 bytes
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 00:42:57, Jan 13 2023
    
    U-Boot SPL 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    SPL initial stack usage: 1856 bytes
    Error (-2): cannot determine file size
    Trying to boot from UART
    CCLoaded 962779 bytes
    
    
    U-Boot 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
    
    SoC:   AM62X SR1.0 HS-SE
    Model: Texas Instruments AM625 SK
    EEPROM not available at 80, trying to read at 81
    Board: AM62B-SKEVM rev A
    DRAM:  2 GiB
    Core:  71 devices, 31 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial
    Out:   serial
    Err:   serial
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  2  0 
    => md.l 0x43000030 1
    43000030: 0000023b                             ;...
    =>