This is a bootloader example, which shows an example of booting Linux on A53 core and RTOS/NORTOS applications on WKUP R5, MCU R5 cores from eMMC.
The booting is done in 2 stages(2 bootloader applications).
The SBL uses 5 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 | wkup-r5fss0-0 nortos |
Toolchain | ti-arm-clang |
Board | am62px-sk |
Example folder | examples/drivers/boot/sbl_emmc_linux_multistage |
config.mak
${SDK_INSTALL_PATH}/tools/boot/sbl_prebuilt/am62px-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/am62px-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)
[BOOTLOADER_PROFILE] Boot Media : eMMC [BOOTLOADER_PROFILE] Boot Media Clock : 200.000 MHz [BOOTLOADER_PROFILE] Boot Image Size : 139 KB [BOOTLOADER_PROFILE] Cores present : wkup-r5f0-0 [BOOTLOADER PROFILE] System_init : 38955us [BOOTLOADER PROFILE] Drivers_open : 0us [BOOTLOADER PROFILE] SBL Drivers_open : 19425us [BOOTLOADER PROFILE] Board_driversOpen : 0us [BOOTLOADER PROFILE] App_loadSelfcoreImage : 35864us [BOOTLOADER_PROFILE] SBL Total Time Taken : 94246us 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 : 853 KB [BOOTLOADER_PROFILE] Cores present : hsm-m4f0-0 mcu-r5f0-0 a530-0 [BOOTLOADER PROFILE] System_init : 2104us [BOOTLOADER PROFILE] Board_init : 0us [BOOTLOADER PROFILE] FreeRtosTask Create : 192us [BOOTLOADER PROFILE] SciserverInit : 15884us [BOOTLOADER PROFILE] SBL Drivers_open : 14602us [BOOTLOADER PROFILE] App_loadImages : 3035us [BOOTLOADER PROFILE] App_loadMCUImages : 4730us [BOOTLOADER PROFILE] App_loadLinuxImages : 21217us [BOOTLOADER_PROFILE] SBL Total Time Taken : 61768us Image loading done, switching to application ... Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.9(release):v2.9.0-dirty NOTICE: BL31: Built : 14:12:59, May 22 2023 U-Boot SPL 2023.04-g48c1296285 (Sep 14 2023 - 21:24:43 +0000) SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.6--w09.00.04-am62p (Kool Ko') Trying to boot from MMC1 Authentication passed Authentication passed U-Boot 2023.04-g48c1296285 (Sep 14 2023 - 21:24:43 +0000) SoC: AM62PX SR1.0 HS-FS Model: Texas Instruments AM62P5 SK DRAM: 2 GiB (effective 8 GiB) Core: 81 devices, 29 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1, mmc@fa20000: 2 . . . . . . _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project am62pxx-evm - Arago 2023.04 am62pxx-evm - am62pxx-evm login: