...
Refer to sources: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/
Table of Contents
Table of Contents |
---|
Boot
...
Process of Trusted Firmware-A
The implementation of the TF-A boot process is divided into 5 stages, in the order of their execution:
Boot Loader stage (BL1): Executed by AP Boot ROM.
Execution stage 2 (BL2): Trusted Boot Firmware.
Execution stage 3-1 (BL31): EL3 Runtime Firmware.
Execution stage 3-2 (BL32): Secure-EL1 Payload.
Execution stage 3-3 (BL33): Non-trusted Firmware.
Boot
...
Process of SP7350 Platform
In the SP7350 software architecture, BL1 is represented by i-boot, BL2 by x-boot, BL31 by TF-A, BL32 by OP-TEE, and BL33 by U-Boot. As shown in the figure below, the blue arrows indicate the boot sequence. Notably, i-boot, x-boot, and TF-A operate at EL3, U-Boot at EL2, while OP-TEE and Linux run at EL1.
...
Code Block |
---|
reserved-memory { : : /* TF-A reserve memory: 0x200000-0x2fffff, total 1M */ tfa_reserve@200000 { reg = <0x0 0x200000 0x0 0x100000>; no-map; }; : : }; |
Power
...
State Coordination Interface (PSCI)
It is a standard interface defined by ARM that facilitates power management operations in a ARMv8-A system. PSCI specifies the interface protocol for the Linux kernel to call power management-related services provided by BL31. It includes the interfaces necessary to implement the following functionalities:
...
PSCI is invoked by the Linux kernel to access secure services provided by BL31. By leveraging PSCI, the Linux kernel can interact with BL31 to perform operations such as CPU power state transitions (e.g., turning CPUs on or off), dynamic voltage and frequency scaling (DVFS), and other power management tasks in a secure and coordinated manner. This collaboration between the Linux kernel and the secure monitor (BL31) ensures efficient and reliable CPU power management while maintaining system security.
Source
...
Files
Source files of TF-A can be found in the "boot/trusted-firmware-a/" directory under the project's top directory. Refer to table below for main sub-directories and descriptions.
...
Files or folders | Descriptions |
lib/psci/ | Contains power state coordination interface (psci) files. |
plat/sp/ | Contains SP7350 platform-related files. |
sp7350.mk | Make file of sp7350 platform. |
Platform-related
...
Header Files
Platform-related header files, residing under "plat/sp/common/include" and "plat/sp/sp7350/include," contain essential definitions for UART, platform settings, DRAM configurations, register addresses, and watchdog registers. Modifying these files is crucial when adapting TF-A to specific platform requirements.
...
Files | Descriptions |
platform_def.h | Contains most definitions of platform, include DRAM base address, size, and etc. |
sp_mmap.h | Contains definitions of address DRAM, registers, GIC base and etc.. |
sp_pm.h | Contains definitions of registers watchdog. |
BL31
...
Log and
...
Explanation
Line 1-2: Banner (version) of BL31.
...