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]