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

Introduction

On the F29H85x, FOTA is supported by using an A/B swapping mechanism. An A/B swap is performed by changing the physical flash banks mapped to the active and inactive address space in flash. The active address space is the flash memory that is executed during runtime while the inactive address space is reserved for programming incoming firmware that can be activated after the A/B swap. Figure 1-1 shows an example of how flash banks are mapped to different address spaces during an A/B swap.

 A/B Swapping on F29H85x Figure 1-1 A/B Swapping on F29H85x

The flash-based UART secondary boot-loader with FOTA example was created to demonstrate this capability of the F29H85x. Hereafter, the example is referred to as SBL.

A key consideration when implementing FOTA on F29H85x is that only bank mode 1 and bank mode 3 support the A/B swapping mechanism. Bank mode 1 supports A/B swapping for only CPU1 and bank mode 3 supports A/B swapping for both CPU1 and CPU3. For more details about bank modes and the associated memory maps, refer to the F29H85x Technical Reference Manual (TRM).

The SBL supports the following features when the device is in bank mode 1:

  1. Non-secure CPU1 FOTA upgrades
  2. Secure CPU1 FOTA upgrades
    1. Device must be in HS-SE state
  3. Secure HSM FOTA upgrades
    1. Device must be in HS-SE state

When the device is bank mode 3, the SBL supports the following features:

  1. Non-secure CPU1 FOTA upgrades
  2. Non-secure CPU3 FOTA upgrades
  3. Secure CPU1 FOTA upgrades
    1. Device must be in HS-SE state
  4. Secure CPU3 FOTA upgrades
    1. Device must be in HS-SE state
  5. Secure HSM FOTA upgrades
    1. Device must be in HS-SE state

To convert an HS-FS device to the HS-SE state, refer to the Serial Flash Programming of F29H85x application note. This project includes 4 different build configurations to be selected based on the desired features.

BANKMODE_1

Non-Secure CPU1 FOTA Upgrades

BANKMODE_1_CP

Device must be in HS-SE state

Secure CPU1 and HSM FOTA Upgrades

BANKMODE_3

Non-Secure CPU1 and CPU3 FOTA Upgrades

BANKMODE_3_CP

Device must be in HS-SE state

Secure CPU1, CPU3, and HSM FOTA Upgrades

CAUTION: This document assumes no SSU configuration.
CAUTION: To successfully build and use this example, F29H85x SDK 1.01.00.00 (or newer) must be installed. For secure firmware upgrades, F29H85x TIFS SDK 1.01.00 (or newer) must be installed as well. The project can be found at the following location in the F29H85x SDK: f29h85x-sdk_xx_xx_xx_xx\examples\driverlib\single_core\flash\flash_based_UART_SBL_with_FOTA.

Additional documentation on secure firmware upgrades can be found in the TIFS SDK (tifs_f29h85x_xx_xx_xx_xx/docs/api_guide_f29h85x/html/docs_src/secure_firmware_update/secure_firmware_update.html)