1 Introduction
NXP has released a set of OTA projects based on MCU on Github. These
projects support the i.MXRT series and related security functions, which have
attracted widespread attention from users. However, these projects are based
on EVK development board of NXP. The capacity of the onboard Flash
determines the storage structure of the entire OTA project. Therefore, the OTA
storage structures vary from each other due to the differences in the capacity
of Flash. This application note introduces the default storage structure and
summarizes some latest experiences while supporting customers. To replace
the Flash, complete the configuration of the OTA projects faster.
2 OTA storage structure overview
The entire OTA consists of SBL and SFW. You can download them from:
SBL: https://github.com/NXPmicro/sbl
SFW: https://github.com/NXPmicro/sfw
The onboard flash is an 8 MB QSPI Flash, so 8 MB of space is allocated. Figure 1 shows the storage structure of the entire OTA.
OTA includes SBL (Secure Bootloader), OTA Flag Data, Slot 1, Slot 2, and Customer Data areas.
Figure 1. Storage structure
2.1 Secure BootLoader (SBL)
After the chip POR is started, SBL determines the execution of programs stored in Slot 1 or Slot 2 according to the information of
OTA Flag Data. SBL supports program verification, revert, and other functions.
The remap function needs 4 kB alignment.
NOTE
Table 1 illustrates the common address space allocation of SBL.
Contents
1 Introduction......................................1
2 OTA storage structure overview......1
2.1 Secure BootLoader (SBL)............1
2.2 OTA Flag Data.............................2
2.3 Slot 1 and Slot 2.......................... 2
2.4 Customer Data.............................2
3 Example: How to customize a storage
structure.......................................... 3
3.1 Overview......................................3
3.2 Address space allocation of
specific demands......................... 3
4 Revision history...............................5
AN13505
OTA Storage Structure on RT1010
Rev. 0 — 20 January 2022
Application Note
Table 1. SBL memory map
  Function Add_Start Add_End
SBL (1 MB - 4 kB)
OTFAD 0x60000000 0x600003FF
m_boot_hdr_conf_start 0x60000400 0x60000FFF
m_boot_hdr_ivt_start 0x60001000 0x6000101F
m_boot_hdr_conf_start 0x60001020 0x6000102F
m_boot_hdr_dcd_start 0x60001030 0x60001FFF
SBL_Code_Vector_Start 0x60002000 0x600FEFFF
2.2 OTA Flag Data
OTA Flag Data area is used to store some flag information during the process of OTA update. According to the flag information
of SBL, the image can be updated, reverted, and jumped to the corresponding slot running program. Table 2 shows the address
space allocation of this area.
Table 2. OTA Flag Data memory map
  Function Add_Start Add_End
Reserved (4 kB - 32 B) Reserved 0x600FF000 0x600FFFDF
OTA Flag Data (32 B) OTA Flag 0x600FFFE0 0x600FFFFF
2.3 Slot 1 and Slot 2
Slot 1 and Slot 2 are used to store the application program. The remap function can switch between Slot 1 and Slot 2, which
requires 4 kB alignment. Slot 1 and Slot 1 each has 1 MB space. Table 3 shows the common address space allocation of Slot 1
and Slot 2.
Table 3. Slot 1 and Slot 2 memory map
  Function Add_Start Add_End
Slot 1 (1 MB)
Image Header 0x60100000 0x601003FF
Application Image 0x60100400 0x601FFFFF
Slot 2 (1 MB)
Image Header 0x60200000 0x602003FF
Application Image 0x60200400 0x602FFFFF
2.4 Customer Data
Customer Data is used to store the information of customers (optional, not compulsory). Table 4 shows the address space
allocation of customer data area.
Table 4. Customer Data memory map
  Function Add_Start Add_End
Customer Data (5 MB) Customer Data 0x60300000 0x607FFFFF
NXP Semiconductors
OTA storage structure overview
OTA Storage Structure on RT1010, Rev. 0, 20 January 2022
Application Note 2 / 6