SPRADN0 December   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Programming Fundamentals
  5. 2Introduction
    1. 2.1 Hardware Security Module
    2. 2.2 ROM Bootloader
    3. 2.3 Combined Image with X.509 Certificate
  6. 3Flash Kernel Implementation
    1. 3.1 CPU1 Firmware Upgrade (HS-FS)
    2. 3.2 Key Provision (HS-FS to HS-KP)
    3. 3.3 CPU1 Secure Firmware Upgrade (HS-KP/SE to HS-SE)
    4. 3.4 HSM Firmware Upgrade (HS-KP/SE to HS-SE)
    5. 3.5 SECCFG Code Provisioning (HS-KP/SE to HS-SE)
  7. 4Host Application: UART Flash Programmer
    1. 4.1 Overview
    2. 4.2 Build UART Flash Programmer with Visual Studio
    3. 4.3 Build UART Flash Programmer with CMake
    4. 4.4 Packet Format
    5. 4.5 Kernel Commands
  8. 5Example Usage
    1. 5.1 Loading the Flash Kernel onto the Device
      1. 5.1.1 Hardware Setup
      2. 5.1.2 Running the UART Flash Programmer
    2. 5.2 CPU1 Device Firmware Upgrade (HS-FS only)
    3. 5.3 Convert HS-FS to HS-SE
    4. 5.4 Loading a RAM-based HSMRt Image
    5. 5.5 Key Provision (HS-FS to HS-KP)
    6. 5.6 Code Provision (HS-KP/SE to HS-SE)
  9. 6Troubleshooting
    1. 6.1 General
    2. 6.2 UART Boot
    3. 6.3 Application Load
  10. 7Summary
  11. 8References

Running the UART Flash Programmer

Note: TI recommends to reset the device before running UART flash programmer so bootROM does not timeout while waiting for UART data.
  1. Navigate to the folder containing the compiled uart_flash_programmer executable.
  2. Run the executable uart_flash_programmer.exe with the following command structure:
    :> uart_flash_programmer.exe -d f29h85x -p COM41 -k ex3_uart_flash_kernel.bin --appcpu1 c29_cpu1_application.bin --hsmrt HSM_runtimeImage.bin --hsmkeys HSM_customKeyCert.bin --cpseccfg sec_cfg_cert.bin --cpappcpu1 c29_cpu1_application.bin --cpapphsm hsm_application.bin
    

    The program automatically connects to the device and download the CPU1 kernel (-k option) into RAM. If the certificate is valid and authentication is successful, then the device begins executing the kernel in LPAx RAM. Now, the CPU1 kernel is running and waiting for a packet from the host.

  3. The uart_flash_programmer prints the options to the screen to choose from that is sent to the device kernel (see Figure 5-1).
  4. The same options is re-printed after succession of the previous operation.
 UART Flash Programmer Prompt for
                Next Command After Downloading Flash Kernel to RAM Figure 5-1 UART Flash Programmer Prompt for Next Command After Downloading Flash Kernel to RAM