SPRUIW9C October 2021 – March 2024 TMS320F280033 , TMS320F280034 , TMS320F280034-Q1 , TMS320F280036-Q1 , TMS320F280036C-Q1 , TMS320F280037 , TMS320F280037-Q1 , TMS320F280037C , TMS320F280037C-Q1 , TMS320F280038-Q1 , TMS320F280038C-Q1 , TMS320F280039 , TMS320F280039-Q1 , TMS320F280039C , TMS320F280039C-Q1
Firmware Update (FWU) boot mode is required to handle the Firmware Update feature. In this boot mode, the boot loader reads the version number from images present in multiple banks and identifies the latest image. The boot ROM then hands off the execution to the application with the latest version. To support FWU boot mode, each Flash bank containing an application image needs a few fields as shown in Table 4-24.
Image Address Offset | Content |
---|---|
0x0 | Application entry point (32-bit) |
0xA | Key (32-bit) Valid Key = 0x5A5A 5A5A |
0xC | Firmware version number (32-bit) |
Application entry point: This is the code execution start address of the image stored in Flash.
Key: This 32-bit field determines if this image is valid. The image in a bank is considered valid only if the location contains the value 0x5A5A 5A5A. In case all banks have invalid keys, an error is flagged in boot_status variable and program jumps to a while loop in standalone boot mode (ESTOP in emulation boot mode).
Firmware version number: This 32-bit field is the version number of the firmware or application. 0xFFFF FFFF is considered as the initial value and this needs to be decremented after every update. The image with lower version number is the latest application. If all valid images have same version number, then bank-0 (or the lowest numbered bank) is chosen.
For example, if bank-0 has invalid Key and bank-1 and bank-2 have valid keys, then the one having lowest Firmware version number is selected for boot. If both are the same, then bank-1 is selected.
Table 4-25 shows the entry points for FWU boot mode.
Option | BOOTDEFx Value | Bank 0 | Bank 1 | Bank 2 |
---|---|---|---|---|
0 | 0x0B | 0x0008 0000 | 0x0009 0000 | 0x000A 0000 |
1 | 0x2B | 0x0008 8000 | 0x0009 8000 | 0x000A 8000 |
2 | 0x4B | 0x0008 FFF0 | 0x0009 FFF0 | 0x000A FFF0 |
3 | 0x6B | 0x0008 8000 | 0x0009 0000 | 0x000A 0000 |
4 | 0x8B | 0x0008 EFF0 | 0x0009 7FF0 | 0x0008 7FF0 |
For example, if Option 0 with Bank 0 has the application image:
[0008 0000-0008 0001] = Application entry point
[0008 000A-0008 000B] = Key
[0008 000C-0008 000D] = Firmware version number