Figure 32-7 shows the ROM code flow chart.
The main loop of the booting module goes through the booting device list and tries to get an image from the currently selected booting device. The ROM code performs the following steps:
- Basic configuration and initialization. Reading of SYSBOOT pins .
- The path named fast external boot is a special low-latency boot mode. It consists of a blind jump to an external addressable memory. See Section 32.3.6, Fast External Booting.
- A booting device list is created (see Section 32.3.4.5, Booting Device List Setup). The list consists of all devices to be searched for a booting image. The list is created based on the SYSBOOT pins.
- The main loop of the booting procedure goes through the booting device list and tries to search for an image from the currently selected booting device. This loop is exited if a valid booting image is found and successfully executed or when the watchdog expires. If an image is found, ROM code executes memory booting or peripheral booting, depending on the type of the current booting device:
- Memory booting is executed when the booting device is XIP memory, NAND, QSPI, eMMC or SD, SATA SSD/HDD.
- Peripheral booting is executed when the booting device is UART or USB.
- Memory booting reads data from memory-type devices. Memory booting is described in detail in Section 32.3.7, Memory Booting.
- Peripheral booting downloads data from communication interfaces. Peripheral booting is described in Section 32.3.5, Peripheral Booting.
- The image automatically starts.
An additional feature of the booting module is the execution of the Configuration Header (CH). The CH configures the system for faster and more flexible booting from the selected permanent or peripheral booting device. The CH, which is optional, is described in Section 32.3.8.2, Configuration Header.