AM62A7: The setting about SBL boot from eMMC with faclon mode

Part Number: AM62A7

Tool/software:

Hi TI experts:

    As the title describe above, we want to boot our board from eMMC with SBL faclon mode, Our sdk version is 10.0 or 9.2. How to set it? Thanks!

Best regards!

Hawayi

  • Hello,

    Please refer to the following SBL_EMMC_LINUX bootloader designed to boot Linux with or without Falcon boot:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM62AX/10_01_00_33/exports/docs/api_guide_am62ax/EXAMPLES_DRIVERS_SBL_EMMC_LINUX_MULTISTAGE.html

    Regards,

    Prashant

  • I don't known how to flash kernel and rootfs to the user area of eMMC,the offset is boot0 or user partition?

  • The MCU+ SDK supports booting from BOOT0 partition only. So, those are the offsets in the BOOT0 partition.

  • If the area of BOOT0 partition isn't enough, is there any solution?

  • If the area of BOOT0 partition isn't enough, is there any solution?

    There is eMMC UDA partition but the MCU+ SDK does not support booting from it at least officially.

    If required, you could modify the following API in the Bootloader MMCSD driver to load the images from the partitions in which they are flashed:

    https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/source/drivers/bootloader/bootloader_mmcsd_raw.c#L61-L61

    BR, Prashant

  • Hi,Prashant:

        The falcon mode boot from eMMC fail too, although the area of BOOT0 partition is 32MB, the logs show as below. What's focus about the message error?

    SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    SYSFW Firmware revision 0xa
    SYSFW ABI revision 4.0

    ERROR: Bootloader_verifyMulticoreImage:660: Failed to authenticate Image
    ERROR: Bootloader_verifyMulticoreImage:660: Failed to authenticate Image
    [BOOTLOADER_PROFILE] Boot Media : eMMC
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz
    [BOOTLOADER_PROFILE] Boot Image Size : 0 KB
    [BOOTLOADER_PROFILE] Cores present :
    [BOOTLOADER PROFILE] System_init : 29544us
    [BOOTLOADER PROFILE] Board_init : 0us
    [BOOTLOADER PROFILE] Drivers_open : 140569us
    [BOOTLOADER PROFILE] Board_driversOpen : 0us
    [BOOTLOADER PROFILE] Sciclient Get Version : 10169us
    [BOOTLOADER_PROFILE] SBL Total Time Taken : 180283us

    Image loading done, switching to application ...
    Starting MCU-r5f and 2nd stage bootloader
    DM image not loaded

  • Hello,

    Can you please share the flashing logs?

    Thanks!

  • #!/bin/sh
    
    # Enable boot0 write flag
    echo 0 > /sys/block/mmcblk0boot0/force_ro
    
    dd if=tiboot3.bin of=/dev/mmcblk0boot0
    dd if=bl2.bin of=/dev/mmcblk0boot0 seek=1024
    dd if=dm_r5_image of=/dev/mmcblk0boot0 seek=1536
    dd if=hsm.bin of=/dev/mmcblk0boot0 seek=4608
    dd if=u-boot.img of=/dev/mmcblk0boot0 seek=5120
    dd if=mcu_r5_image of=/dev/mmcblk0boot0 seek=16384
    dd if=c7x_image of=/dev/mmcblk0boot0 seek=20480
    dd if=linux_a53_image of=/dev/mmcblk0boot0 seek=36864
    
    # Disable boot0 write flag
    echo 1 > /sys/block/mmcblk0boot0/force_ro
    

    Hi,Prashant:

        After I rebuild the image and flash it again, the log show below, stop at the last line.Attached file is the flash script.

    [2025-03-31 18:54:28] root@am62axx-evm:/run/media/BOOT-mmcblk1p1/out# ./burn.sh
    [2025-03-31 18:54:29] 530+1 records in
    [2025-03-31 18:54:29] 530+1 records out
    [2025-03-31 18:54:29] 271591 bytes (265.2KB) copied, 0.042235 seconds, 6.1MB/s
    [2025-03-31 18:54:29] 228+1 records in
    [2025-03-31 18:54:29] 228+1 records out
    [2025-03-31 18:54:29] 117010 bytes (114.3KB) copied, 0.023858 seconds, 4.7MB/s
    [2025-03-31 18:54:29] 324+1 records in
    [2025-03-31 18:54:29] 324+1 records out
    [2025-03-31 18:54:29] 166062 bytes (162.2KB) copied, 0.026961 seconds, 5.9MB/s
    [2025-03-31 18:54:29] 18+1 records in
    [2025-03-31 18:54:29] 18+1 records out
    [2025-03-31 18:54:29] 9677 bytes (9.5KB) copied, 0.008712 seconds, 1.1MB/s
    [2025-03-31 18:54:29] 2296+1 records in
    [2025-03-31 18:54:29] 2296+1 records out
    [2025-03-31 18:54:29] 1175611 bytes (1.1MB) copied, 0.165477 seconds, 6.8MB/s
    [2025-03-31 18:54:29] 103+1 records in
    [2025-03-31 18:54:29] 103+1 records out
    [2025-03-31 18:54:29] 52766 bytes (51.5KB) copied, 0.014480 seconds, 3.5MB/s
    [2025-03-31 18:54:29] 298+1 records in
    [2025-03-31 18:54:29] 298+1 records out
    [2025-03-31 18:54:29] 152926 bytes (149.3KB) copied, 0.025546 seconds, 5.7MB/s
    [2025-03-31 18:54:32] 41318+1 records in
    [2025-03-31 18:54:32] 41318+1 records out
    [2025-03-31 18:54:32] 21155255 bytes (20.2MB) copied, 2.624117 seconds, 7.7MB/s
    [2025-03-31 18:54:40] root@am62axx-evm:/run/media/BOOT-mmcblk1p1/out# cd /
    [2025-03-31 18:54:41] root@am62axx-evm:/# sync
    [2025-03-31 18:54:41] root@am62axx-evm:/#
    [2025-03-31 18:54:54] SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    [2025-03-31 18:54:54] SYSFW Firmware revision 0xa
    [2025-03-31 18:54:54] SYSFW ABI revision 4.0
    [2025-03-31 18:54:29]
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Boot Media : eMMC
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Boot Image Size : 162 KB
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Cores present :
    [2025-03-31 18:54:54] mcu-r5f0-0
    [2025-03-31 18:54:54] r5f0-0
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] System_init : 25587us
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] Board_init : 0us
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] Drivers_open : 83393us
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] Board_driversOpen : 0us
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] Sciclient Get Version : 10170us
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] MCU R5 Image Load : 3415us
    [2025-03-31 18:54:54] [BOOTLOADER PROFILE] DM R5 Image Load : 4608us
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] SBL Total Time Taken : 127175us
    [2025-03-31 18:54:32]
    [2025-03-31 18:54:54] Image loading done, switching to application ...
    [2025-03-31 18:54:54] Starting MCU-r5f and 2nd stage bootloader
    [2025-03-31 18:54:41]
    [2025-03-31 18:54:54] SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    [2025-03-31 18:54:54] SYSFW Firmware revision 0xa
    [2025-03-31 18:54:54] SYSFW ABI revision 4.0
    [2025-03-31 18:54:29]
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Boot Media : eMMC
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Boot Image Size : 20973 KB
    [2025-03-31 18:54:54] [BOOTLOADER_PROFILE] Cores present :
    [2025-03-31 18:54:54] hsm-m4f0-0
    [2025-03-31 18:54:54] r5f0-0
    [2025-03-31 18:54:54] a530-0
    [2025-03-31 18:54:54] c75ss0
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] System_init : 1677us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] Board_init : 0us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] Drivers_open : 21713us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] Board_driversOpen : 0us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] Sciclient Get Version : 10269us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] HSM Image Load : 2470us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] DM R5 Image Load : 5267us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] A53 Image Load : 392782us
    [2025-03-31 18:54:55] [BOOTLOADER PROFILE] DSP Image Load : 11703us
    [2025-03-31 18:54:55] [BOOTLOADER_PROFILE] SBL Total Time Taken : 445886us
    [2025-03-31 18:54:54]
    [2025-03-31 18:54:55] Image loading done, switching to application ...
    [2025-03-31 18:54:55] Starting linux and RTOS/Baremetal applications
    [2025-03-31 18:54:55] NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    [2025-03-31 18:54:55] NOTICE: BL31: Built : 16:09:05, Feb 9 2024

    Regards,

    Hawayi

  • [2025-03-31 18:54:32] 41318+1 records in
    [2025-03-31 18:54:32] 41318+1 records out
    [2025-03-31 18:54:32] 21155255 bytes (20.2MB) copied, 2.624117 seconds, 7.7MB/s

    This is not possible if the eMMC boot partition size is 32MB. The Linux Appimage is of size ~20MB and is flashed at offset 0x1200000 (18MB). So, the leftover space (14MB) would not be enough.

    Is your eMMC boot partition size larger than 32MB?

  • Is your eMMC boot partition size larger than 32MB?

    ==>No.  I have changed the offset of related images to make sure the area is enough(examples/drivers/boot/sbl_emmc_multistage/sbl_emmc_stage2/am62ax-sk/r5fss0-0_nortos/example.syscfg), and I don't think that is the root case.

  • examples/drivers/boot/sbl_emmc_multistage/sbl_emmc_stage2

    Please use the SBL_EMMC_LINUX_MULTISTAGE bootloader for booting Linux:

    software-dl.ti.com/.../EXAMPLES_DRIVERS_SBL_EMMC_LINUX_MULTISTAGE.html

  • Yes,I have read it, but without any help.

  • In the previous threads, you have the SBL Falcon boot working from SD card. Are you using the same working Linux Appimage for eMMC boot as well?

    I would expect you to have everything same except using SBL_EMMC_LINUX_MULTISTAGE instead of the SBL_SD bootloader.

  • Yes, Linux Appimage is the same. the follow boot from eMMC is different from SD. Could you have a try on EVM?

  • Here are the successful logs from the EVM:

    [18:23:44.983] SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    [18:23:44.992] SYSFW Firmware revision 0xa
    [18:23:44.998] SYSFW ABI revision 4.0
    
    [18:23:45.014] [BOOTLOADER_PROFILE] Boot Media       : eMMC
    [18:23:45.017] [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz
    [18:23:45.021] [BOOTLOADER_PROFILE] Boot Image Size  : 134 KB
    [18:23:45.025] [BOOTLOADER_PROFILE] Cores present    :
    [18:23:45.032] r5f0-0
    [18:23:45.032] [BOOTLOADER PROFILE] System_init                      :      37970us
    [18:23:45.037] [BOOTLOADER PROFILE] Board_init                       :          0us
    [18:23:45.043] [BOOTLOADER PROFILE] Drivers_open                     :      19613us
    [18:23:45.050] [BOOTLOADER PROFILE] Board_driversOpen                :          0us
    [18:23:45.055] [BOOTLOADER PROFILE] Sciclient Get Version            :      10376us
    [18:23:45.065] [BOOTLOADER PROFILE] DM R5 Image Load                 :      13520us
    [18:23:45.069] [BOOTLOADER_PROFILE] SBL Total Time Taken             :      81480us
    
    [18:23:45.079] Image loading done, switching to application ...
    [18:23:45.082] Starting MCU-r5f and 2nd stage bootloader
    
    [18:23:45.110] SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    [18:23:45.114] SYSFW Firmware revision 0xa
    [18:23:45.116] SYSFW ABI revision 4.0
    
    [18:23:45.687] [BOOTLOADER_PROFILE] Boot Media       : eMMC
    [18:23:45.697] [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz
    [18:23:45.702] [BOOTLOADER_PROFILE] Boot Image Size  : 21052 KB
    [18:23:45.705] [BOOTLOADER_PROFILE] Cores present    :
    [18:23:45.708] hsm-m4f0-0
    [18:23:45.709] r5f0-0
    [18:23:45.710] a530-0
    [18:23:45.710] c75ss0
    [18:23:45.711] [BOOTLOADER PROFILE] System_init                      :       1746us
    [18:23:45.719] [BOOTLOADER PROFILE] Board_init                       :          0us
    [18:23:45.724] [BOOTLOADER PROFILE] Drivers_open                     :      19587us
    [18:23:45.729] [BOOTLOADER PROFILE] Board_driversOpen                :          1us
    [18:23:45.737] [BOOTLOADER PROFILE] Sciclient Get Version            :      10396us
    [18:23:45.741] [BOOTLOADER PROFILE] HSM Image Load                   :       5453us
    [18:23:45.752] [BOOTLOADER PROFILE] DM R5 Image Load                 :      11151us
    [18:23:45.756] [BOOTLOADER PROFILE] A53 Image Load                   :     533776us
    [18:23:45.760] [BOOTLOADER PROFILE] DSP Image Load                   :      15505us
    [18:23:45.770] [BOOTLOADER_PROFILE] SBL Total Time Taken             :     597618us
    
    [18:23:45.774] Image loading done, switching to application ...
    [18:23:45.783] Starting linux and RTOS/Baremetal applications
    [18:23:45.786] NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    [18:23:45.800] NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    [18:23:46.230] [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [18:23:46.235] [    0.000000] Linux version 6.6.32-ti-gdb8871293143-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240620) #1 SMP PREEMPT Thu Aug  1 19:10:56 UTC 2024
    [18:23:46.255] [    0.000000] KASLR disabled due to lack of seed
    [18:23:46.265] [    0.000000] Machine model: Texas Instruments AM62A7 SK

    If it helps, the following changes were done:

    diff --git a/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/example.syscfg b/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/example.syscfg
    index 7bb9f80..3e02307 100644
    --- a/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/example.syscfg
    +++ b/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage1/am62ax-sk/r5fss0-0_nortos/example.syscfg
    @@ -36,7 +36,7 @@ const mpu_armv79  = mpu_armv7.addInstance();
      */
     bootloader1.bootMedia          = "EMMC";
     bootloader1.$name              = "CONFIG_BOOTLOADER_EMMC_MCU";
    -bootloader1.EMMCAppImageOffset = "0x800000";
    +bootloader1.EMMCAppImageOffset = "0x600000";
     
     bootloader2.bootMedia          = "EMMC";
     bootloader2.$name              = "CONFIG_BOOTLOADER_EMMC_SBL";
    diff --git a/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62ax-sk/r5fss0-0_nortos/example.syscfg b/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62ax-sk/r5fss0-0_nortos/example.syscfg
    index 5c3ab16..16f993a 100644
    --- a/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62ax-sk/r5fss0-0_nortos/example.syscfg
    +++ b/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62ax-sk/r5fss0-0_nortos/example.syscfg
    @@ -33,12 +33,12 @@ bootloader2.EMMCAppImageOffset = "0xC0000";
     bootloader3.$name              = "CONFIG_BOOTLOADER_EMMC_LINUX";
     bootloader3.appImageOffset     = "0xC00000";
     bootloader3.bootMedia          = "EMMC";
    -bootloader3.EMMCAppImageOffset = "0x1200000";
    +bootloader3.EMMCAppImageOffset = "0x800000";
     
     bootloader4.$name              = "CONFIG_BOOTLOADER_EMMC_DSP";
     bootloader4.appImageOffset     = "0x1000000";
     bootloader4.bootMedia          = "EMMC";
    -bootloader4.EMMCAppImageOffset = "0xA00000";
    +bootloader4.EMMCAppImageOffset = "0x700000";
     
     mmcsd1.$name            = "CONFIG_MMCSD0";
     bootloader1.MMCSDDriver = mmcsd1;
    

  • Hi,Prashant:

    After I patch your syscfg and test again, the kernel log looks like normally. Thanks for your help!

    SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    SYSFW Firmware revision 0xa
    SYSFW ABI revision 4.0
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 162 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    mcu-r5f0-0
    r5f0-0
    [BOOTLOADER PROFILE] System_init                      :      25669us 
    [BOOTLOADER PROFILE] Board_init                       :          0us 
    [BOOTLOADER PROFILE] Drivers_open                     :      42851us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :      10184us 
    [BOOTLOADER PROFILE] MCU R5 Image Load                :       3441us 
    [BOOTLOADER PROFILE] DM R5 Image Load                 :       4614us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :      86762us 
    
    Image loading done, switching to application ...
    Starting MCU-r5f and 2nd stage bootloader
    
    SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    SYSFW Firmware revision 0xa
    SYSFW ABI revision 4.0
    
    [BOOTLOADER_PROFILE] Boot Media       : eMMC 
    [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz 
    [BOOTLOADER_PROFILE] Boot Image Size  : 20973 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    hsm-m4f0-0
    r5f0-0
    a530-0
    c75ss0
    [BOOTLOADER PROFILE] System_init                      :       1691us 
    [BOOTLOADER PROFILE] Board_init                       :          0us 
    [BOOTLOADER PROFILE] Drivers_open                     :      21717us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] Sciclient Get Version            :      10245us 
    [BOOTLOADER PROFILE] HSM Image Load                   :       2478us 
    [BOOTLOADER PROFILE] DM R5 Image Load                 :       5309us 
    [BOOTLOADER PROFILE] A53 Image Load                   :     392786us 
    [BOOTLOADER PROFILE] DSP Image Load                   :      11750us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :     445979us 
    
    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
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.6.32-ti-gdb8871293143-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240620) #1 SMP PREEMPT Thu Aug  1 19:10:56 UTC 2024
    [    0.000000] KASLR disabled due to lack of seed
    [    0.000000] Machine model: Texas Instruments AM62A7 SK
    [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
    [    0.000000] printk: bootconsole [ns16550a0] enabled

  • Thanks for the confirmation!! Closing the thread...