AM62P: AM62P Falcon-boot testing issues

Part Number: AM62P
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

1. download MCU+ SDK and build

2. cd tool/boot/HSMAppimageGen; make -s BOARD=am62px-sk all

3. cd tool/boot/linuxAppimageGenmake -s BOARD=am62px-sk allscreenshot-20241217-112320.png FALCON_MODE=1

4. Hardware modification to uart boot mode,then execute the following script:

python uart_bootloader.py -p COM19 --cfg=sbl_prebuilt/am62px-sk/default_sbl_uart_hs_fs.cfg

python uart_uniflash.py -p COM19 --cfg=sbl_prebuilt/am62px-sk/default_sbl_emmc_linux_hs_fs.cfg

5. After burning is completed,change to EMMC boot mode

6. The startup log is as follows:

[BOOTLOADER_PROFILE] Boot Media       : eMMC 
[BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
[BOOTLOADER_PROFILE] Boot Image Size  : 168 KB 
[BOOTLOADER_PROFILE] Cores present    : 
wkup-r5f0-0
[BOOTLOADER PROFILE] System_init                      :      37987us 
[BOOTLOADER PROFILE] Board_init                       :          0us 
[BOOTLOADER PROFILE] Drivers_open                     :          0us 
[BOOTLOADER PROFILE] SBL Drivers_open                 :      20422us 
[BOOTLOADER PROFILE] Board_driversOpen                :          0us 
[BOOTLOADER PROFILE] App_loadSelfcoreImage            :       8511us 
[BOOTLOADER_PROFILE] SBL Total Time Taken             :      66922us 

Image loading done, switching to application ...
Starting 2nd stage bootloader
[BOOTLOADER_PROFILE] Boot Media       : eMMC 
[BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
[BOOTLOADER_PROFILE] Boot Image Size  : 934 KB 
[BOOTLOADER_PROFILE] Cores present    : 
hsm-m4f0-0
mcu-r5f0-0
a530-0
[BOOTLOADER PROFILE] System_init                      :       2064us 
[BOOTLOADER PROFILE] Board_init                       :          0us 
[BOOTLOADER PROFILE] FreeRtosTask Create              :        258us 
[BOOTLOADER PROFILE] SBL Drivers_open                 :      24329us 
[BOOTLOADER PROFILE] App_loadImages                   :       5819us 
[BOOTLOADER PROFILE] App_loadMCUImages                :       8004us 
[BOOTLOADER PROFILE] App_loadLinuxImages              :      19919us 
[BOOTLOADER_PROFILE] SBL Total Time Taken             :      60396us 

Image loading done, switching to application ...
Starting linux and RTOS/Baremetal applications
NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
NOTICE:  BL31: Built : 16:09:05, Feb  9 2024

U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
SPL initial stack usage: 1904 bytes
MMC: no card present
** Bad device specification mmc 1 **
Couldn't find partition mmc 1:1
Error: could not access storage.
Trying to boot from MMC1
Authentication passed
Authentication passed


U-Boot 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)

SoC:   AM62PX SR1.0 HS-FS
Model: Texas Instruments AM62P5 SK
DRAM:  2 GiB (effective 8 GiB)
Core:  85 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
Warning: ethernet@8000000port@2 (eth1) using random MAC address - be:97:fd:48:34:0e
, eth1: ethernet@8000000port@2
Hit any key to stop autoboot:  0 
=> 
=> 
=> 

7.Modify tools/boot/sbl_prebuilt/am62px-sk/ default_sbl_emmc_linux_hs_fs.cfg as follows:

#-----------------------------------------------------------------------------#
#                                                                             #
#      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/am62px-sk/sbl_uart_uniflash_stage1.release.hs_fs.tiimage

# Points to sbl_uart_uniflash_stage2 binary, which function's as a server to flash one or more files to eMMC
# Please note this binary is copied to DDR by sbl_uart_uniflash_stage1 and not written to any boot media like flash or eMMC
--file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage.hs_fs --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/am62px-sk/sbl_emmc_linux_stage1.release.hs_fs.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/am62px-sk/wkup-r5fss0-0_freertos/ti-arm-clang/sbl_emmc_linux_stage2.release.appimage.hs_fs --operation=flash-emmc --flash-offset=0x80000

# HSM image is flashed at 0x240000 or to whatever offset your bootloader is configured for
--file=HSMAppimageGen/board/am62px-sk/hsm.appimage.hs_fs --operation=flash-emmc --flash-offset=0x240000

# When sending application image, make sure to flash at offset 0x800000 (default) or to whatever offset your bootloader is configured for
--file=../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage.hs_fs --operation=flash-emmc --flash-offset=0x800000

# Linux image is flashed at 0x1200000 or to whatever offset your bootloader is configured for
--file=linuxAppimageGen/board/am62px-sk/linux.appimage.hs_fs --operation=flash-emmc --flash-offset=0x280000

# u-boot.img is flashed at 0x280000
#--file=linuxAppimageGen/board/am62px-sk/u-boot.img --operation=flash-emmc --flash-offset=0x280000

8. After modification and re burning, the uboot still hasn't been skipped and the logs are the same,the startup log is as follows:

[BOOTLOADER_PROFILE] Boot Media       : eMMC 
[BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
[BOOTLOADER_PROFILE] Boot Image Size  : 168 KB 
[BOOTLOADER_PROFILE] Cores present    : 
wkup-r5f0-0
[BOOTLOADER PROFILE] System_init                      :      37987us 
[BOOTLOADER PROFILE] Board_init                       :          0us 
[BOOTLOADER PROFILE] Drivers_open                     :          0us 
[BOOTLOADER PROFILE] SBL Drivers_open                 :      20422us 
[BOOTLOADER PROFILE] Board_driversOpen                :          0us 
[BOOTLOADER PROFILE] App_loadSelfcoreImage            :       8511us 
[BOOTLOADER_PROFILE] SBL Total Time Taken             :      66922us 

Image loading done, switching to application ...
Starting 2nd stage bootloader
[BOOTLOADER_PROFILE] Boot Media       : eMMC 
[BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
[BOOTLOADER_PROFILE] Boot Image Size  : 934 KB 
[BOOTLOADER_PROFILE] Cores present    : 
hsm-m4f0-0
mcu-r5f0-0
a530-0
[BOOTLOADER PROFILE] System_init                      :       2064us 
[BOOTLOADER PROFILE] Board_init                       :          0us 
[BOOTLOADER PROFILE] FreeRtosTask Create              :        258us 
[BOOTLOADER PROFILE] SBL Drivers_open                 :      24329us 
[BOOTLOADER PROFILE] App_loadImages                   :       5819us 
[BOOTLOADER PROFILE] App_loadMCUImages                :       8004us 
[BOOTLOADER PROFILE] App_loadLinuxImages              :      19919us 
[BOOTLOADER_PROFILE] SBL Total Time Taken             :      60396us 

Image loading done, switching to application ...
Starting linux and RTOS/Baremetal applications
NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
NOTICE:  BL31: Built : 16:09:05, Feb  9 2024

U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
SPL initial stack usage: 1904 bytes
MMC: no card present
** Bad device specification mmc 1 **
Couldn't find partition mmc 1:1
Error: could not access storage.
Trying to boot from MMC1
Authentication passed
Authentication passed


U-Boot 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000)

SoC:   AM62PX SR1.0 HS-FS
Model: Texas Instruments AM62P5 SK
DRAM:  2 GiB (effective 8 GiB)
Core:  85 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
Warning: ethernet@8000000port@2 (eth1) using random MAC address - be:97:fd:48:34:0e
, eth1: ethernet@8000000port@2
Hit any key to stop autoboot:  0 
=> 
=> 

9. Package and use kernel Image when generating "linux.appimage.hs_fs",the file size is as follows:

liuhongjie@Rd-Horizon:~/ti/mcu_plus_sdk_am62px_10_00_00_14/tools/boot/linuxAppimageGen/board/am62px-sk$ ll
total 42016
drwxr-xr-x 2 liuhongjie liuhongjie     4096 12月 17 08:16 ./
drwxr-xr-x 3 liuhongjie liuhongjie     4096 12月  4 10:27 ../
-rw-r--r-- 1 liuhongjie liuhongjie      937 12月 12 17:43 config.mak
-rw-rw-r-- 1 liuhongjie liuhongjie 20881376 12月 17 08:16 linux.appimage
-rw-rw-r-- 1 liuhongjie liuhongjie 20883000 12月 17 08:16 linux.appimage.hs_fs
-rw-rw-r-- 1 liuhongjie liuhongjie  1241623 12月 17 08:16 u-boot.img


Please advise on how to correctly configure Falcon startup and skip uboot?

  • I didn't pay attention to the burning error,now every time I burn it, there are errors. What is the reason for this?

    Error reported when burning EMMC:

    Executing command 1 of 7 ...
    Found flash writer ... sending sbl_prebuilt/am62px-sk/sbl_uart_uniflash_stage1.release.hs_fs.tiimage
    Sent flashwriter sbl_prebuilt/am62px-sk/sbl_uart_uniflash_stage1.release.hs_fs.tiimage of size 260568 bytes in 27.47s.
    
    Executing command 2 of 7 ...
    Command arguments : --file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage.hs_fs --operation=flash --flash-offset=0x0
    Sending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortosSending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortosSending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortosSending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortosSending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortosSending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortosSending ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortos                                                                                                                        Sent ../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62px-sk/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage.hs_fs of size 135379 bytes in 16.16s.
    [STATUS] SUCCESS !!!
    
    Executing command 3 of 7 ...
    Command arguments : --file=sbl_prebuilt/am62px-sk/sbl_emmc_linux_stage1.release.hs_fs.tiimage --operation=flash-emmc --flash-offset=0x0
    Sent sbl_prebuilt/am62px-sk/sbl_emmc_linux_stage1.release.hs_fs.tiimage of size 269912 bytes in 28.24s.
    [STATUS] SUCCESS !!!
    
    Executing command 4 of 7 ...
    Command arguments : --file=../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-arm-clang/sbl_emmc_linux_stage2.release.appimage.hs_fs --operation=flash-emmc --flash-offset=0x80000
    Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-Sending ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-                                                                                                                        Sent ../../examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62px-sk/wkup-r5fss0-0_freertos/ti-arm-clang/sbl_emmc_linux_stage2.release.appimage.hs_fs of size 174411 bytes in 19.31s.
    [STATUS] SUCCESS !!!
    
    Executing command 5 of 7 ...
    Command arguments : --file=HSMAppimageGen/board/am62px-sk/hsm.appimage.hs_fs --operation=flash-emmc --flash-offset=0x240000
    Sent HSMAppimageGen/board/am62px-sk/hsm.appimage.hs_fs of size 9646 bytes in 3.82s.
    [STATUS] SUCCESS !!!
    
    Executing command 6 of 7 ...
    Command arguments : --file=../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage.hs_fs --operation=flash-emmc --flash-offset=0x800000
    Sending ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linuSending ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linuSending ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linuSending ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linuSending ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linuSending ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linu                                                                                                                        Sent ../../examples/drivers/ipc/ipc_rpmsg_echo_linux/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo_linux.release.appimage.hs_fs of size 58063 bytes in 8.34s.
    [STATUS] SUCCESS !!!
    
    Executing command 7 of 7 ...
    Command arguments : --file=linuxAppimageGen/board/am62px-sk/linux.appimage.hs_fs --operation=flash-emmc --flash-offset=0x1200000
    Sent linuxAppimageGen/board/am62px-sk/linux.appimage.hs_fs of size 20883000 bytes in 1961.06s.
    [STATUS] ERROR: Flashing failed !!!
    
    All commands from config file are executed !!!

    I tried to flash “linux.appimage.hs_fs” compiled without "FALCON_MODE=1", and it burned normally. However, when flash it compiled with "FALCON_MODE=1", it reported errors!May I ask how to solve this issue? Is it due to verification failure or size exceeding the limit?