This is a bootloader example, which shows an example of booting Linux on A53 core and RTOS/NORTOS applications on R5 and M4 cores from eMMC.
The booting is done in 2 stages(2 bootloader applications).
The SBL uses 6 appimages
The bootloader does SOC initializations and parses the multicore appimage present at 0x800000 in eMMC boot partition 1, splits it into RPRCs for each core applicable. Each core is then initialized, RPRC image is loaded, entry points are set and the core is released from reset.
For booting Linux, SBL parses the Linux appimage present at 0xA00000 in eMMC boot partition, splits it into individual linux binaries (ATF, OPTEE, SPL). SBL loads the Linux binaries, entry point is set to the start address of ATF and A53 core is released from reset.
Parameter | Value |
---|---|
CPU + OS | r5fss0-0 nortos |
Toolchain | ti-arm-clang |
Board | am62x-sk, am62x-sk-lp |
Example folder | examples/drivers/boot/sbl_emmc_linux_multistage |
sbl_emmc_linux.tiimage
.config.mak
${SDK_INSTALL_PATH}/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/{cpu}_{os}/default_sbl_emmc_linux.cfg
default_sbl_emmc_linux.cfg
shown above.C:/ti/mcu_plus_sdk
and this example and IPC application is built using makefiles, and Linux Appimage is already created, in Windows, cd C:/ti/mcu_plus_sdk/tools/boot python uart_uniflash.py -p COM13 --cfg=C:/ti/mcu_plus_sdk/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/r5fss0-0_nortos/default_sbl_emmc_linux.cfg
~/ti/mcu_plus_sdk
cd ~/ti/mcu_plus_sdk python uart_uniflash.py -p /dev/ttyUSB0 --cfg=~/ti/mcu_plus_sdk/examples/drivers/boot/sbl_emmc_linux_multistage/sbl_emmc_linux_stage2/am62x-sk/r5fss0-0_nortos/default_sbl_emmc_linux.cfg
After flashing and booting the EVM, you will see below output on the UART console (Complete log is not shown)
DMSC Firmware Version 8.4.7--v08.04.07 (Jolly Jellyfi DMSC Firmware revision 0x8 DMSC ABI revision 3.1 [BOOTLOADER_PROFILE] Boot Media : eMMC [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz [BOOTLOADER_PROFILE] Boot Image Size : 152 KB [BOOTLOADER_PROFILE] Cores present : m4f0-0 r5f0-0 [BOOTLOADER PROFILE] System_init : 27757us [BOOTLOADER PROFILE] Drivers_open : 764670us [BOOTLOADER PROFILE] Board_driversOpen : 0us [BOOTLOADER PROFILE] Sciclient Get Version : 10115us [BOOTLOADER PROFILE] App_loadImages : 129890us [BOOTLOADER_PROFILE] SBL Total Time Taken : 1090861us Image loading done, switching to application ... Starting MCU-m4f and 2nd stage bootloader DMSC Firmware Version 8.4.7--v08.04.07 (Jolly Jellyfi DMSC Firmware revision 0x8 DMSC ABI revision 3.1 [BOOTLOADER_PROFILE] Boot Media : eMMC [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz [BOOTLOADER_PROFILE] Boot Image Size : 853 KB [BOOTLOADER_PROFILE] Cores present : hsm-m4f0-0 r5f0-0 a530-0 [BOOTLOADER PROFILE] System_init : 2714us [BOOTLOADER PROFILE] Drivers_open : 764715us [BOOTLOADER PROFILE] Board_driversOpen : 0us [BOOTLOADER PROFILE] Sciclient Get Version : 10181us [BOOTLOADER PROFILE] App_loadImages : 51580us [BOOTLOADER PROFILE] App_loadSelfcoreImage : 334055us [BOOTLOADER_PROFILE] SBL Total Time Taken : 1544969us Image loading done, switching to application ... Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.7(release):v2.7.0-dirty NOTICE: BL31: Built : 16:38:50, Sep 8 2022 I/TC: I/TC: OP-TEE version: 3.17.0-125-g15a746d28 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Thu Sep 8 16:42:29 UTC 2022 aarch64 I/TC: Primary CPU initializing I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') I/TC: HUK Initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2021.01-gb8840490a1 (Sep 08 2022 - 16:42:45 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.4.7--v08.04.07 (Jolly Jellyfi') Trying to boot from MMC1 . . . . . . _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project http://arago-project.org am64xx-evm ttyS2 Arago 2020.09 am64xx-evm ttyS2 am62xx-evm login: