8.2. Understanding bootloaders in Processor SDK J721E (RTOS/Linux)

8.2.1. Introduction

There are two bootloaders in Processor SDK J721E (RTOS/Linux). They are:

  1. RTOS Bootloader

  2. Linux Bootloader

This developer note describes about these two bootloaders.

8.2.2. RTOS Bootloader

RTOS Bootloader is referred to as SBL (Secondary bootloader).

  • This is included in Processor SDK RTOS at

    pdk_<device>_<version>/packages/ti/boot
    
  • This is used when all cores on the SoC run SysBIOS

  • In this case one would see below boot files in a SD card

    1. tiboot3.bin - this is the SBL which the ROM bootloader will boot on MCU R5F Core0

    2. tiboot3.bin will boot tifs.bin - this is the DMSC firmware binary

    3. tiboot3.bin will boot a file called “app” - this file contains binaries of all other CPUs like Main R5F’s, A72, C6x, C7x

    4. “app” is created by running an offline tool which covert elf .out files to .rprc format and then combines these to something called “multi-core image”

    See also

    See this page for more info on this .rprc file and offline boot tools https://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_Foundational_Components.html#boot

8.2.3. Linux Bootloader

Linux bootloader uses SPL and uboot to boot various CPUs.

  • This is included in Processor SDK Linux at below path

    board-support/u-boot-<version and git tag>
    
  • This is used when Linux runs on A72. Most SDK demos like deep learning demos use Linux on A72 hence this bootloader is used in many out of box demos.

  • In this case one would see below files in the SD card

    1. tiboot3.bin - this is the SPL (not SBL) which the ROM bootloader will boot on MCU R5F Core0

    2. tiboot3.bin will boot tifs.bin - this is the DMSC firmware binary

    3. tiboot3.bin will boot tispl.bin on A72 - this is the 1st stage bootloader on A72 before uboot

    4. tispl.bin on A72 will boot uboot.img on A72 - this is uboot which will boot Linux

    5. uboot.img will boot non A72 (such as C6x, C7x, R5F) binaries located at below path in rootfs partition of the SD card

      /lib/firmware/j7-main-<cpu>-fw
      
    6. uboot.img will read a file uEnv.txt which will tell which .dtbo files to apply in addition to below dtb file present in rootfs partition

      /boot/k3-<j721e|j7200>-proc-board-tps65917.dtb
      
    7. uboot.img will boot Linux kernel stored in rootfs partition below

      /boot/Image
      
    8. Linux will use information in the loaded .dtb/dtbo files to configure itself during boot

    Note

    • Steps 4-8 is standard Linux boot flow typical of any SoC.

    • Steps 1-3 are specific to J7 SoC.