Boot flows: SPL vs SBL#

There are 2 main kinds of boot flow supported on this processor: SPL boot, and SBL boot.

Which boot flows are used in each SDK?#

The Linux SDK was developed and tested with SPL boot. SPL boot is the default boot mode for the Linux SDK filesystem images. For more information about the SPL boot flow, reference the Linux SDK docs, section Boot flow.

The MCU+ SDK was mostly developed and tested with SBL boot. For more information about the SBL boot flow, reference the MCU+ SDK docs, sections Understanding the bootflow and bootloaders and Secondary Bootloader (SBL).

Note

SBL that does not include Linux in the title will NOT load Linux onto the A53 cores.

What part of the boot flow is actually different between SPL & SBL?#

When booting Linux on the A53 cores, the firmware that runs on the R5 core early in boot is different between SPL & SBL. However, the code that runs on the A53 (ATF/OPTEE, A53 SPL, U-Boot, etc) and all code that runs later in the boot process is the same for both boot flows.

Are there specific reasons to use SPL or SBL?#

This is not an exhaustive list of differences between SBL & SBL. However, differences between SPL & SBL software include:

Is RTOS used on A53?#

If MCU+ SDK is loaded onto the A53 cores, then SBL is the only boot flow TI supports.

Are the remote cores getting programmed?#

If none of the remote cores are programmed (for example, in an AM62x Linux-only usecase), then SPL boot is simpler, since SPL is supported by default in the Linux SDK.

Time to initialize remote cores#

A non-Linux core that is initialized during SBL boot will begin running earlier than a non-Linux core that was initialized later in the boot flow, during U-Boot or Linux boot. For more information, refer to Methods to initialize remote cores.

Software license#

SPL software is bounded by a GPL license. On the other hand, SBL software is provided with a “free use” TI license.