11.3. Understanding bootloaders in Processor SDK J784S4 (RTOS/Linux/QNX)¶
11.3.1. Introduction¶
There are two bootloaders in Processor SDK J784S4 (RTOS/Linux/QNX). They are:
RTOS Bootloader
Linux Bootloader
This developer note describes about these two bootloaders.
11.3.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 FreeRTOS. Following are the details regarding boot files in the SD card:
tiboot3.bin - this is the SBL which the ROM bootloader will boot on MCU R5F Core0
tiboot3.bin will boot tifs.bin - this is the DMSC firmware binary
tiboot3.bin will boot a file called “app”.
If “app” is “combined boot image”, it contains binaries of all other CPUs like A72, Main R5F, C7x. “combined boot image” 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”
If “app” is “BootAPP”, please refer below table.
See also
See PDK’s bootloader page for more info on this .rprc file and offline boot tools
The table below provides more information about the features and differences between the SBL bootloader and the “Boot App”:
Feature area |
SBL Description |
“Boot App” |
Key Diffs / Comments |
---|---|---|---|
Initial Bootloader |
YES |
NO |
Boot app is a “tertiary” bootloader |
SoC’s Supported |
J7200/J721E/J721S2/J784S4/J722S |
J7200/J721E/J721S2/J784S4 |
|
Device types supported |
GP, HS |
GP, HS |
NOTE: most, but not all, features are supported for each device type. Check specific feature support listed in each release. |
Runs on MCU R5F |
YES |
YES |
NOTE: the SBL is used to boot the Boot App |
Can support startup with MCU domain only |
YES |
YES |
|
Boot media supported |
UART, MMCSD, OSPI |
MMCSD, OSPI |
UART boot supported with SBL only |
Supports booting HLOS + RTOS images |
YES |
YES |
SBL uses “combined appimage” build to put all RTOS & HLOS images into a single .appimage, whereas a specific format of combined images is used with the boot app. |
Boots another app to MCU R5F |
YES |
Boot app doesn’t support booting an app to the MCU R5F (since it is the app already running on that processor) |
|
Image Layout |
single appimage |
3-5 different appimages |
SBL: all images for the remote cores to be booted must all be combined in to a single .appimage file that is either placed on the SD card (for MMCSD boot) or is flashed to a single flash addr location (for xSPI / OSPI boot). This includes all HLOS & RTOS images that must be booted. “Boot App”: images for remote cores to be booted are split up into 3-5 different appimage files for either SD card booting or flashed into 3-5 different flash addresses for xSPI / OSPI booting (see details in the MCUSW CAN Boot App documentation). |
11.3.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/QNX runs on the HLOS core.
In this case one would see below files in the SD card
tiboot3.bin - this is the SPL (not SBL) which the ROM bootloader will boot on MCU R5F Core0
tiboot3.bin will boot tifs.bin - this is the SMS firmware binary
tiboot3.bin will boot tispl.bin on A72 - this is the 1st stage bootloader on A72 before uboot
tispl.bin on A72 will boot uboot.img on A72 - this is uboot which will boot Linux/QNX
uboot.img will boot non A72 (such as C7x, R5F) binaries located at below path in rootfs partition of the SD card
/lib/firmware/j784s4-<cpu>-fw
uboot.img will read a file uEnv.txt which will tell which how to boot QNX-IFS and other non A72 binaries
See also
Refer to PSDK LINUX documentation for more information on uboot https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/latest/exports/docs/linux/Foundational_Components_U-Boot.html#u-boot-user-s-guide