SPRADS1 June   2025 F29H850TU

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Hardware Security Module
    2. 1.2 Flash Programming Fundamentals
    3. 1.3 High-Level Flow
    4. 1.4 Flow Chart
  5. 2Flash-Based UART SBL with FOTA
    1. 2.1 Implementation
    2. 2.2 Triggering a Bank Swap
  6. 3FOTA_Example_Application
    1. 3.1 led_blinky_cpu1.c
    2. 3.2 Combining the Flash-Based SBL with the FOTA_Example_Application
    3. 3.3 Adding a CPU3 Application
  7. 4Host Application: UART Flash Programmer
    1. 4.1 Overview
  8. 5Example Usage
    1. 5.1 Loading the SBL onto the Device
      1. 5.1.1 Loading by CCS (JTAG)
      2. 5.1.2 Loading via UART Boot and the UART Flash Kernel
    2. 5.2 Example UART Loading Process
  9. 6FAQ
    1. 6.1 General
    2. 6.2 Application Load
  10. 7Summary
  11. 8References

Loading via UART Boot and the UART Flash Kernel

In an environment where CCS is not used to load the flash of the F29H85x, the UART flash kernel can be used to program the flash-based SBL. Refer to the Serial Flash Programming of F29H85x™ application note for details about the UART flash kernel. At a high-level, the kernel acts as a secondary bootloader that enables flash programming or firmware updates over UART.

An important detail is that the UART flash kernel only supports programming CPU1 firmware in bank mode 0 (for now, this is updated in the future). Thus, this cannot be used to place the flash-based SBL code and application in both the active and inactive regions of flash for bank mode 1 or bank mode 3. In a scenario where the flash-based SBL needs to reside in both the active and inactive regions, the UART kernel can be used to program the active region and the flash-based SBL can be used to program the inactive region. The flow required to have flash-based SBL and an application in CPU1 active or inactive flash in bank mode 1 is as follows:

  1. Put the device in UART boot mode and make sure device is in bank mode 0
  2. Trigger a device reset
  3. Send the UART flash kernel to F29H85x using the uart_host_programmer.exe
  4. Once completed, send the flash_based_uart_sbl_with_fota.bin file to the device
    1. Flash-based SBL is programmed in CPU1 flash
  5. Put the device in bank mode 1 and configure flash boot mode
  6. Trigger a device reset
    1. Device boots to flash-based SBL
  7. Send the flash_based_uart_sbl_with_fota.bin file to the device using uart_host_programmer.exe
    1. flash_based_uart_sbl_with_fota.bin is programmed to the inactive region of CPU1 flash
Note: uart_host_programmer_appIn.exe is used for step 7 if the COM port needs to be reinitialized after the device reset.