blob: 04ca2b91e1357cec8dc968bf83b8eb548e0c81e1 [file] [log] [blame]
Divin Raj1d88de12024-04-17 00:35:17 +01001RD-1 AE (Kronos) Platform
2=========================
3
4Some of the features of the RD-1 AE platform referenced in TF-A include:
5
6- Neoverse-V3AE, Arm9.2-A application processor (64-bit mode)
7- A GICv4-compatible GIC-720AE
8
9Further information on RD1-AE is available at `rd1ae`_
10
11Boot Sequence
12-------------
13
Ziad Elhanafye6fbccc2024-07-15 09:18:45 +010014The boot process starts from RSE (Runtime Security Engine) that loads the
15Application Processor (AP) BL2 image and signals the System Control Processor (SCP)
16to power up the AP. The AP then runs AP BL2
Divin Raj1d88de12024-04-17 00:35:17 +010017
Ziad Elhanafye6fbccc2024-07-15 09:18:45 +010018The primary compute boot flow follows the following steps:
Divin Raj1d88de12024-04-17 00:35:17 +010019
Ziad Elhanafye6fbccc2024-07-15 09:18:45 +0100201. AP BL2:
21
22 * Performs the actions described in the `Trusted Board Boot (TBB)`_ document.
23 * Copies the AP BL31 image from Secure Flash to Secure SRAM
24 * Copies the AP BL32 (OP-TEE) image from Secure Flash to Secure DRAM
25 * Copies the AP BL33 (U-Boot) image from Secure Flash to Normal DRAM
26 * Transfers the execution to AP BL31
27
282. AP BL31:
29
30 * Initializes Trusted Firmware-A Services
31 * Transfers the execution to AP BL32 and then transfers the execution to AP BL33
32 * During runtime, acts as the Secure Monitor, handling SMC calls,
33 and context switching between secure and non-secure worlds.
34
353. AP BL32:
36
37 * Initializes OP-TEE environment
38 * Initializes Secure Partitions
39 * Transfers the execution back to AP BL31
40 * During runtime, it facilitates secure communication between the
41 normal world environment (e.g. Linux) and the Trusted Execution Environment.
Divin Raj1d88de12024-04-17 00:35:17 +010042
43Build Procedure (TF-A only)
44~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
46- Obtain `Arm toolchain`_ and set the CROSS_COMPILE environment variable to
47 point to the toolchain folder.
48
49- Build TF-A:
50
51 .. code:: shell
52
53 make \
54 PLAT=rd1ae \
55 MBEDTLS_DIR=<mbedtls_dir> \
56 ARCH=aarch64 \
57 CREATE_KEYS=1 \
58 GENERATE_COT=1 \
59 TRUSTED_BOARD_BOOT=1 \
60 COT=tbbr \
61 ARM_ROTPK_LOCATION=devel_rsa \
62 ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \
Ziad Elhanafye6fbccc2024-07-15 09:18:45 +010063 BL32=<path to optee binary> \
64 SPD=spmd \
65 SPMD_SPM_AT_SEL2=0 \
Divin Raj1d88de12024-04-17 00:35:17 +010066 BL33=<path to u-boot binary> \
67
68*Copyright (c) 2024, Arm Limited. All rights reserved.*
69
70.. _Arm Toolchain: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads
71.. _rd1ae: https://developer.arm.com/Tools%20and%20Software/Arm%20Reference%20Design-1%20AE
72.. _Trusted Board Boot (TBB): https://trustedfirmware-a.readthedocs.io/en/latest/design/trusted-board-boot.html