Last edited 2 months ago

TF-A BL31 overview

Applicable for STM32MP25x lines

1. Article purpose[edit source]

This section details the TF-A BL31 stage (Trusted Firmware-A Boot Loader stage 3-1) used as EL3 Runtime Software or Secure Monitor on AArch64 platforms.

It is loaded by BL2 in internal SYSRAM.
More information can be found in TF-A documentation, AArch64 BL31 chapter[1].

2. BL31 binary file[edit source]

The BL31 binary file (bl31.bin) is located inside the FIP.

3. Device tree[edit source]

TF-A BL31 is based on device tree configuration. It uses the same device tree as the kernel but keeping only the mandatory nodes (to reduce binary size) through the use of a dedicated device tree file (such as fdts/stm32mp25-bl31.dtsi ). It must be configured or updated depending on your platform.
The BL31 device tree blob file is located inside the FIP.

4. Build process[edit source]

BL31 is compiled together with BL2 with the same make command, see How to configure TF-A BL2.

Then the BL31 binary file and BL31 device tree are integrated in a FIP binary.

5. References[edit source]