Last edited 7 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 put 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) thanks to 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 put 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 page.

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

5. References[edit source]