J722S MCU+ SDK  09.02.00
SBL EMMC HLOS

Introduction

SBL EMMC Linux boots from the boot partition 0 of eMMC and does not use a filesystem boot. The appimage is flashed to the offsets in eMMC as configured using syscfg.

This is a bootloader example, which shows an example of booting Linux/U-Boot/QNX on A53 core and RTOS/NORTOS applications on R5/DSP cores. This SBL target supports booting the following test cases

  • SBL Booting Linux Kernel
  • SBL Booting U-Boot
  • SBL Booting QNX

Supported Combinations

Parameter Value
CPU + OS wkup-r5fss0-0 nortos
Toolchain ti-arm-clang
Boards j722s-evm
Example folder examples/drivers/boot/sbl_emmc

Steps to Run the Example

Prepare the SD Card

  • Create SD card using balena etcher tool, refer Processor-SDK-Linux for more details
  • This is needed to have file system in root partition of SD card

Build the Example

  • When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles)

Create Linux Appimage

  • Create a Linux Appimage containing the Linux binaries (ATF, OPTEE, A53 SPL) or (ATF, OPTEE, Kernel, DTB) in case of fastboot mode.
  • This can be done by running the makefile at {SDK_INSTALL_PATH}/tools/boot/linuxAppimageGen after setting the PSDK path in file config.mak
  • Refer Linux Appimage Generator Tool for more details

Create QNX Appimage

  • Create a QNX Appimage containing (TAF, OPTEE, QNX-IFS)
  • This can be done by running the makefile at {SDK_INSTALL_PATH}/tools/boot/qnxAppimageGen after setting the PSDK path in file config.mak
  • Refer QNX Appimage Generator Tool for more details

Run the Example

  • Flash SBL, Appimage to eMMC, follow below steps to flash the binaries
  • Create a folder named sbl in the boot partition of wic image flashed SD card and copy SBL image (may be as tiboot3.bin) and application image (may be as app)
  • Insert the SD card into the EVM and boot the board in SD boot mode
  • Halt at U-Boot and execute the following commands
    • mmc dev 0 1
    • fatload mmc 1 ${loadaddr} sbl/tiboot3.bin
    • mmc write ${loadaddr} 0x0 0x300 (size of app in blocks)
    • fatload mmc 1 ${loadaddr} sbl/app
    • mmc write ${loadaddr} 0x400 0x800 (size of app in blocks)
    • mmc partconf 0 1 1 1
    • mmc bootbus 0 2 0 0
  • Note: one block is of size 512 bytes
  • Now change the boot switch settings to eMMC boot mode and reset the evm

See Also

BOOTLOADER