SWRA760A April   2023  – April 2024 AWR2544 , AWR2944

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Definitions, Abbreviations, Acronyms
  5. 2Introduction
  6. 3Basic Bootloader Flow
    1. 3.1 Boot Flow Introduction
    2. 3.2 Preparing the Application for Boot
      1. 3.2.1 SBL Image Format
      2. 3.2.2 Signing Scripts
    3. 3.3 ROM Boot
      1. 3.3.1 Boot mode - SFLASH
        1. 3.3.1.1 Image Load Sequence
        2. 3.3.1.2 Boot Mode UART
          1. 3.3.1.2.1 Image Download Sequence
    4. 3.4 SBL Boot
      1. 3.4.1 R5 SBL Flash Offset
      2. 3.4.2 R5 SBL Image Size
  7. 4Conclusion
  8. 5Revision History

SBL Boot

The SBL is essentially an example application of the bootloader library. SBL is called a secondary bootloader because SBL is booted by the RBL, which is the primary bootloader. An SBL typically does a bunch of SOC specific initializations and proceeds to the application loading.

GUID-98C982A8-505D-4340-96DE-C79108C344C8-low.png Figure 3-7 SBL Design Flow

The secondary bootloader can update the application meta image in the sFLASH by receiving the image over a serial interface. The bootloader then loads and runs the updated application meta image. The ROM (primary) bootloader always loads the SBL. User defined SBL can choose to either update or load and run the existing application meta image.

The SBL can make sure that the factory default backup image is never erased or updated by the image updater. The upgrade is done for the entire meta image. The user defined SBL can perform the checksum verification to verify the validity of the meta image trying to load from sFLASH. In the case where the image is corrupted or download is interrupted, the SBL provides a failsafe mechanism to reload the image. This can be achieved resetting the board. If the primary meta image fails to load, the factory default backup image is loaded by the SBL. If both fail, SBL can reset the board so the user can re-attempt the download of the meta image.

mmWave MCU Plus SDK provides a reference implementation of SBL, which user can refer and write their own SBL . Here are basic features of this SBL

  • SBL looks for the multicore appimage of the application binary at a specified location in a boot media[GJ3] .
  • If the appimage is found, the multicore appimage is parsed into multiple RPRCs[GJ4] . These are optimized binaries which are then loaded into individual CPUs.
  • Each RPRC image has information regarding the core on which the image is to be loaded, entry points and multiple sections of that application binary
  • The SBL uses this information to initialize each core which has a valid RPRC. The SBL then loads the RPRC according to the sections specified, sets the entry points and releases the core from reset. Now the core starts running
GUID-B9989E93-E421-4081-9B1E-B38D62F424AB-low.png Figure 3-8 SBL Boot