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 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 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.
Refer SBL Booting Linux From eMMC for more details on the EMMC bootflow.
Refer Enabling DDR inline ECC enablig inline ECC
Parameter | Value |
---|---|
CPU + OS | r5fss0-0 nortos |
Toolchain | ti-arm-clang |
Board | am62x-sk, am62x-sk-lp, am62x-sip-sk |
Example folder | examples/drivers/boot/sbl_emmc_linux_multistage |
config.mak
${SDK_INSTALL_PATH}/tools/boot/sbl_prebuilt/am62x-sk/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/tools/boot/sbl_prebuilt/am62x-sk/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)
SYSFW Version 9.0.5--v09.00.05 (Kool Koala) SYSFW revision 0x9 DMSC ABI revision 3.1 [BOOTLOADER_PROFILE] Boot Media : eMMC [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz [BOOTLOADER_PROFILE] Boot Image Size : 157 KB [BOOTLOADER_PROFILE] Cores present : m4f0-0 r5f0-0 [BOOTLOADER PROFILE] System_init : 6688us [BOOTLOADER PROFILE] Drivers_open : 50067us [BOOTLOADER PROFILE] Board_driversOpen : 0us [BOOTLOADER PROFILE] Sciclient Get Version : 9928us [BOOTLOADER PROFILE] App_loadImages : 23087us [BOOTLOADER PROFILE] App_loadSelfcoreImage : 24984us [BOOTLOADER_PROFILE] SBL Total Time Taken : 114756us Image loading done, switching to application ... Starting MCU-m4f and 2nd stage bootloader SYSFW Version 9.0.5--v09.00.05 (Kool Koala) SYSFW revision 0x9 DMSC ABI revision 3.1 [BOOTLOADER_PROFILE] Boot Media : eMMC [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz [BOOTLOADER_PROFILE] Boot Image Size : 940 KB [BOOTLOADER_PROFILE] Cores present : hsm-m4f0-0 r5f0-0 a530-0 [BOOTLOADER PROFILE] System_init : 2669us [BOOTLOADER PROFILE] Drivers_open : 19541us [BOOTLOADER PROFILE] Board_driversOpen : 1us [BOOTLOADER PROFILE] Sciclient Get Version : 9975us [BOOTLOADER PROFILE] App_loadImages : 21374us [BOOTLOADER PROFILE] App_loadSelfcoreImage : 26255us [BOOTLOADER PROFILE] App_loadLinuxImages : 50493us [BOOTLOADER_PROFILE] SBL Total Time Taken : 130310us Image loading done, switching to application ... Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty NOTICE: BL31: Built : 00:42:57, Jan 13 2023 U-Boot SPL 2023.04-ga3595f1e3e (Jun 15 2023 - 08:14:46 +0000) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)') SPL initial stack usage: 1856 bytes Trying to boot from MMC1 Authentication passed Authentication passed U-Boot 2023.04-ga3595f1e3e (Jun 15 2023 - 08:14:46 +0000) SoC: AM62X SR1.0 HS-FS Model: Texas Instruments AM625 SK EEPROM not available at 80, trying to read at 81 Board: AM62-SKEVM rev E3 . . . . . . _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project am62xx-evm - Arago 2023.04 am62xx-evm - am62xx-evm login: