SWRU622A August   2024  – September 2024 AWRL1432 , AWRL6432 , IWRL1432 , IWRL6432 , IWRL6432AOP

 

  1.   1
  2.   Trademarks
  3. 1Introduction
  4. 2Basic Bootloader Flow
    1. 2.1 Programming Serial Data Flash Over UART (Bootloader Service)
    2. 2.2 Binary File Format
    3. 2.3 Flash Programming Sequence
    4. 2.4 Supported UART Commands/Response and Format
    5. 2.5 Flashing Sequence
    6. 2.6 ROM-Assisted Image Download Sequence
    7. 2.7 Booting Application Image
      1. 2.7.1 Booting From Serial Flash
      2. 2.7.2 Bootmode – SPI
      3. 2.7.3 Bootmode - UART
  5. 3Secondary Bootloader
    1. 3.1 SBL Execution Flow
      1. 3.1.1 Flash Memory Partitioning for SBL Execution
      2. 3.1.2 SBL Feature Modifications
      3. 3.1.3 SBL Development Considerations
  6. 4Warm Reset
    1. 4.1 Integrity Verification
    2. 4.2 LSTC/PBIST
    3. 4.3 Watchdog Timer
    4. 4.4 Reset-Triggered Flash Reload of Application
      1. 4.4.1 Hardware Solutions
        1. 4.4.1.1 PMIC I2C Messaging
        2. 4.4.1.2 External Watchdog Timer
        3. 4.4.1.3 External Voltage Monitoring or Voltage Supervisors
      2. 4.4.2 Software Solutions
        1. 4.4.2.1 Setting Boot Vector to 0x0
  7. 5Relevant Registers
    1. 5.1 Reset Registers
    2. 5.2 PC Registers
      1. 5.2.1 Addresses
  8. 6Revision History

SBL Development Considerations

Shared Memory Considerations

  • The SBL example runs from shared memory to avoid conflicting with any application code in the M4 RAM.
  • When loading an application with the SBL, the application cannot store any text, data, or read-only information in shared memory. For more information, see the DIG#14 in the errata. However, examples using L3 memory in shared memory can still utilize shared memory.

General Development Considerations

  • IWR devices require RAM1 memory bank to be explicitly initialized due to EFUSE differences between IWR and AWR devices
    • IWR devices have ECC disabled by default, therefore requiring explicit memory initialization
    • It is good practice to initialize all the memory banks, but results in a delay in boot time
      • Can also be resolved by disabling the SYSTICK timer which was causing unnecessary access to memory banks upon execution of the ISR
  • If executing a warm reset on an application that was loaded by the SBL, please make sure the warm reset considerations are executed by the SBL and the SBL triggers the warm reset
    • Specifically required for watchdog resets in the application that trigger a warm reset as it is an uncontrolled reset that may not handle all the necessary steps for ensuring a successful warm reset upon exit of the program