mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 09:04:17 +00:00

Update the boot sequence in the RD-1 AE documentation to include BL32 (OP-TEE). Signed-off-by: Ziad Elhanafy <ziad.elhanafy@arm.com> Change-Id: I25fdc114bb71d3ad7e1bb2d845f758d6af037e3d
72 lines
2.4 KiB
ReStructuredText
72 lines
2.4 KiB
ReStructuredText
RD-1 AE (Kronos) Platform
|
|
=========================
|
|
|
|
Some of the features of the RD-1 AE platform referenced in TF-A include:
|
|
|
|
- Neoverse-V3AE, Arm9.2-A application processor (64-bit mode)
|
|
- A GICv4-compatible GIC-720AE
|
|
|
|
Further information on RD1-AE is available at `rd1ae`_
|
|
|
|
Boot Sequence
|
|
-------------
|
|
|
|
The boot process starts from RSE (Runtime Security Engine) that loads the
|
|
Application Processor (AP) BL2 image and signals the System Control Processor (SCP)
|
|
to power up the AP. The AP then runs AP BL2
|
|
|
|
The primary compute boot flow follows the following steps:
|
|
|
|
1. AP BL2:
|
|
|
|
* Performs the actions described in the `Trusted Board Boot (TBB)`_ document.
|
|
* Copies the AP BL31 image from Secure Flash to Secure SRAM
|
|
* Copies the AP BL32 (OP-TEE) image from Secure Flash to Secure DRAM
|
|
* Copies the AP BL33 (U-Boot) image from Secure Flash to Normal DRAM
|
|
* Transfers the execution to AP BL31
|
|
|
|
2. AP BL31:
|
|
|
|
* Initializes Trusted Firmware-A Services
|
|
* Transfers the execution to AP BL32 and then transfers the execution to AP BL33
|
|
* During runtime, acts as the Secure Monitor, handling SMC calls,
|
|
and context switching between secure and non-secure worlds.
|
|
|
|
3. AP BL32:
|
|
|
|
* Initializes OP-TEE environment
|
|
* Initializes Secure Partitions
|
|
* Transfers the execution back to AP BL31
|
|
* During runtime, it facilitates secure communication between the
|
|
normal world environment (e.g. Linux) and the Trusted Execution Environment.
|
|
|
|
Build Procedure (TF-A only)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
- Obtain `Arm toolchain`_ and set the CROSS_COMPILE environment variable to
|
|
point to the toolchain folder.
|
|
|
|
- Build TF-A:
|
|
|
|
.. code:: shell
|
|
|
|
make \
|
|
PLAT=rd1ae \
|
|
MBEDTLS_DIR=<mbedtls_dir> \
|
|
ARCH=aarch64 \
|
|
CREATE_KEYS=1 \
|
|
GENERATE_COT=1 \
|
|
TRUSTED_BOARD_BOOT=1 \
|
|
COT=tbbr \
|
|
ARM_ROTPK_LOCATION=devel_rsa \
|
|
ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \
|
|
BL32=<path to optee binary> \
|
|
SPD=spmd \
|
|
SPMD_SPM_AT_SEL2=0 \
|
|
BL33=<path to u-boot binary> \
|
|
|
|
*Copyright (c) 2024, Arm Limited. All rights reserved.*
|
|
|
|
.. _Arm Toolchain: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads
|
|
.. _rd1ae: https://developer.arm.com/Tools%20and%20Software/Arm%20Reference%20Design-1%20AE
|
|
.. _Trusted Board Boot (TBB): https://trustedfirmware-a.readthedocs.io/en/latest/design/trusted-board-boot.html
|