Last edited 4 months ago

TF-A BL31 overview



1. Article purpose

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

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

3. Device tree

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

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