1. Diagram frames and legend

The hardware execution contexts are shown with vertical frames in the boot diagrams:
- The Arm Cortex-A secure context, in pink.
- The Arm Cortex-A nonsecure context, in dark blue.
- The Arm Cortex-M context, in light blue, for STM32MP15x lines
only.
The horizontal frame in:
- The bottom part shows the boot chain.
- The top part shows the runtime services, that are installed by the boot chain.

The legend on the right illustrates how the information about the various components shown in the frames are involved in the boot process. These are highlighted as follows:
- The box color shows the component source code origin.
- The arrows show the loading and calling actions between the components.
- The Cube logo is used on the top right corner of components that can be configured via STM32CubeMX.
- The lock shows the components that can be authenticated during the boot process.
2. STM32MP13 boot chain
2.1. Overview
STM32MP13 boot chain uses Trusted Firmware-A (TF-A) as the FSBL in order to fulfill all the requirements for security-sensitive customers, and it uses U-Boot as the SSBL. Note that this boot chain can run on any STM32MP13 device security variant (that is, with or without the secure boot).
Refer to the security overview for an introduction of the secure features available on STM32MP13, from the secure boot up to trusted applications execution.

2.2. ROM code
The ROM code starts the processor in secure mode. It supports the FSBL authentication and decryption.
2.3. First stage bootloader (FSBL)
The FSBL is executed from the SYSRAM.
Among other things, this bootloader initializes (part of) the clock tree and the DDR controller. Finally, the FSBL loads the second-stage bootloader (SSBL) into the DDR external RAM and jumps to it.
The bootloader stage 2, so called TF-A BL2, is the Trusted Firmware-A (TF-A) binary used as FSBL on STM32MP13.
2.4. Second stage bootloader (SSBL)
U-Boot is commonly used as a bootloader in embedded software and it is the one used on STM32MP13.
2.5. Linux
Linux® OS is loaded in DDR by U-Boot and executed in the nonsecure context.
2.6. Secure OS / Secure monitor
The Cortex-A7 secure world supports OP-TEE secure OS.
3. STM32MP15 boot chain
3.1. Overview
STM32MP15 boot chain uses Trusted Firmware-A (TF-A) as the FSBL in order to fulfill all the requirements for security-sensitive customers, and it uses U-Boot as the SSBL. Note that the authentication is optional with this boot chain, so it can run on any STM32MP15 device security variant (that is, with or without the secure boot).
Refer to the security overview for an introduction of the secure features available on STM32MP15, from the secure boot up to trusted applications execution.

Note:
- The STM32MP15 coprocessor can be started at the SSBL level by the U-Boot early boot feature or, later, by the Linux remoteproc framework, depending on the application startup time-targets.
3.2. ROM code
The ROM code starts the processor in secure mode. It supports the FSBL authentication and offers authentication services to the FSBL.
3.3. First stage bootloader (FSBL)
The FSBL is executed from the SYSRAM.
Among other things, this bootloader initializes (part of) the clock tree and the DDR controller. Finally, the FSBL loads the second-stage bootloader (SSBL) into the DDR external RAM and jumps to it.
The bootloader stage 2, so called TF-A BL2, is the Trusted Firmware-A (TF-A) binary used as FSBL on STM32MP15.
3.4. Second stage bootloader (SSBL)
U-Boot is commonly used as a bootloader in embedded software and it is the one used on STM32MP15.
3.5. Linux
Linux® OS is loaded in DDR by U-Boot and executed in the nonsecure context.
3.6. Secure OS / Secure monitor
The Cortex-A7 secure world supports OP-TEE secure OS.
3.7. Coprocessor firmware
The coprocessor STM32Cube firmware can be started at the SSBL level by U-Boot with the remoteproc feature (rproc command) or, later, by Linux remoteproc framework, depending on the application startup time-targets.