AM64x MCU+ SDK  09.02.00
SBL Booting Linux From eMMC

Introduction

  • SBL booting Linux from eMMC (see SBL EMMC Linux) is a secondary bootloader application that boots Linux on A53 core and RTOS/NORTOS application on R5, M4 cores.
  • The bootloader makes use of two appimages
    • One containing the application images(RTOS/NORTOS) for R5, M4 cores.
    • Other containing the Linux binaries(ATF, OPTEE, SPL) for A53 core.
  • The Linux appimage can be generated by using Linux Appimage Generator Tool
  • The appimages will be flashed to the offset on eMMC specified by SysCfg, the SBL parses the appimages from these locations, loads and run the cores.

Features Supported

  • Boots R5, M4 cores and Linux on A53 from eMMC.
  • SBL booting Linux can be used when early booting of R5 and M4 cores are required. When using uBoot to run R5 and M4 cores the application will start running on R5, M4 cores only after booting Linux

Features NOT Supported

  • SBL booting Linux supports only booting from OSPI (see SBL OSPI Linux) and eMMC.
  • If SD card or other boot modes are required, user might need to switch to booting Linux using Linux uBoot.

Bootflow for SBL booting linux from eMMC

Note
The binaries for R5, M4 cores need not be in the linux file system (root/lib/firmware), when SBL is booting Linux.
  • The bootflow for SBL booting Linux is as follows

Bootflow for SBL booting Linux

SRAM memory layout for SBL booting Linux

Note
The memory load address for core applications must not overlap with one other
Attention
The load address for R5 and M4 core applications must be consistant with the memory layout in Linux dts
  • Shown below is the memory map in SRAM for SBL booting Linux

SRAM memory map for SBL booting Linux

EMMC Partitioning

Note
The default Linux image for AM64x-evm can be used to boot Linux using SBL
The tiboot3.bin, tispl.bin will not be used for booting Linux when using SBL booting Linux.
The R5 binaries in the Linux filesystem (eg : root/lib/firmware/am64-main-r5f0_0-fw) will not be used when SBL boots Linux and R5,M4 cores.
  • eMMC uses two patitions to boot Linux
    • A boot patition
      • tiboot3.bin
      • tispl.bin
      • u-boot.img
      • uboot.env
    • A ext4 partition in the user data area containing
      • Linux Kernel image
      • Linux DTB
      • Linux file system

See Also