This bootloader does SOC initializations and attempts to boot a multicore appimage present at 0x81000 location in the OSPI Flash. To flash a multicore appimage at this location, follow the steps mentioned in Basic steps to flash files.
If a multicore appimage is found at the location, the SBL parses it. Each core is then initialized, application image is loaded, entry points are set and the core is released from reset. For more on bootflow/bootloaders, please refer Understanding the bootflow and bootloaders
To flash an mcelf file, use the project examples/drivers/boot/sbl_ospi_multicore_elf
When an mcelf image is found, the SBL parses it, loads each segment to its specified address location. Then the core is released from reset.
The steps to run the example is same irrespective of the image format.
This SBL is optimized for performance. It utilizes caching and disables logs which are present in other SBLs. Only MCELF application image format is supported with this SBL.
To flash an mcelf file, use the project examples/drivers/boot/sbl_ospi_fastboot.
In addition to the SBL and application, the HSM runtime firmware should also be flashed at an address known to the this SBL. This flash address can be configured via sysconfig and must match the one present in flash writer tool.
When an mcelf image is found, the SBL parses it, loads each segment to its specified address location. Then the core is released from reset.
The steps to run the example is same irrespective of the image format. Please follow the steps mentioned in Achieving Fast Secure Boot and Boot time calculator.
SBL_OSPI_SWAP provides boot region swaping mechanism based on information provided in the boot sector (4KB) 0x80000.
If the byte at address 0x80080 is 0, 0x80081 is 0, 0x80082 is 0, 0x80083 is 1, then this SBL will boot from 2nd half of flash and if there is any other value in any of the above address then this SBL will boot from 1st half of flash.
For more on exact mechanism of this switching please refer How to A/B Swap? Working of bootseg IP. If it fails to boot from selected boot region, then it will try to boot from other region and if it fails again then SBL fails to boot application.
This also has anti-rollback support. User Application needs to make sure that minimum application number in the HSM should corresponds to the intended application version.
Parameter | Value |
---|---|
CPU + OS | r5fss0-0 nortos |
Toolchain | ti-arm-clang |
Boards | am263px-cc, am263px-lp |
Example folder | examples/drivers/boot/sbl_ospi |
Since this is a bootloader, the example will be run every time you boot an application using this example. It is run from a OSPI boot media unlike other examples which are usually loaded with CCS. Nevertheless, you can build this example like you do for the others using makefile or build it via CCS by importing as a project.