How arm-software/arm-trusted-firmware works
Trusted Firmware-A is secure-world boot and runtime firmware for Arm A-profile systems. Its main workflow starts at reset, loads and authenticates firmware images, initializes EL3 runtime, and transfers control to the next stage or a secure payload. Runtime EL3 also handles monitor calls and exceptions. The graph combines documented product scope with the supplied tree and excerpts; several platform storage implementations are sampled, but PSCI and SDEI implementation paths are not present in the supplied tree, so their wiring is not asserted.
Main entry points: bl31_main.c BL31 EL3 · bl2_main.c BL2 · bl2_image_load_v2.c Image loader · runtime_svc.c Runtime services
Components 22
Boot stages
- BL1
bl1/bl1_main.c - BL2
bl2/bl2_main.c - BL2U update
bl2u/bl2u_main.c - BL31 EL3
bl31/bl31_main.c - SP_MIN
bl32/sp_min/sp_min_main.c
Image loading
- Image loader
bl2/bl2_image_load_v2.c - Image descriptors
common/desc_image_load.c
Boot trust
- Image authentication
drivers/auth/auth_mod.c - Crypto backend
drivers/auth/crypto_mod.c
Secure runtime
- TSP
bl32/tsp/tsp_main.c - Runtime services
common/runtime_svc.c - Interrupt management
bl31/interrupt_mgmt.c - EL3 traps
bl31/bl31_traps.c - SCMI messaging
drivers/scmi-msg/entry.c - SDEI exception interface
bl31/ehf.c
Platform I/O
- I/O storage API
drivers/io/io_storage.c - Platform image policy
plat/arm/common/arm_io_storage.c - Firmware package
drivers/io/io_fip.c - Block storage
drivers/io/io_block.c - Platform SCMI
drivers/arm/css/scmi/scmi_common.c
Other components
- Platform reset
- Secure monitor caller
Connections 23
- Platform reset → BL1: enters
- BL1 → Image descriptors: requests images
- BL1 → BL2: hands off
- BL2 → Image loader: loads firmware
- Image loader → Image descriptors: uses metadata
- Image loader → Platform image policy: requests source
- Platform image policy → I/O storage API: opens device
- I/O storage API → Firmware package: dispatches reads
- I/O storage API → Block storage: dispatches reads
- Image loader → Image authentication: authenticates images
- Image authentication → Crypto backend: uses crypto
- BL2 → BL31 EL3: hands off
- BL31 EL3 → Runtime services: registers services
- Secure monitor caller → Runtime services: issues SMC
- Runtime services → Secure monitor caller: returns result
- BL31 EL3 → Interrupt management: manages interrupts
- BL31 EL3 → EL3 traps: handles traps
- BL31 EL3 → TSP: dispatches payload
- BL31 EL3 → SP_MIN: dispatches payload
- SCMI messaging → Platform SCMI: uses protocols
- Runtime services → SCMI messaging: dispatches requests
- BL31 EL3 → SDEI exception interface: supports exceptions
- BL2 → BL2U update: optional update stage