blob: 20d3e562e1b6de710134e6f735438040a444784f [file] [log] [blame]
Usama Ariff1513622021-04-09 17:07:41 +01001TC Total Compute Platform
Usama Arifbec5afd2020-04-17 16:13:39 +01002==========================
3
Usama Ariff1513622021-04-09 17:07:41 +01004Some of the features of TC platform referenced in TF-A include:
Usama Arifbec5afd2020-04-17 16:13:39 +01005
6- A `System Control Processor <https://github.com/ARM-software/SCP-firmware>`_
7 to abstract power and system management tasks away from application
8 processors. The RAM firmware for SCP is included in the TF-A FIP and is
9 loaded by AP BL2 from FIP in flash to SRAM for copying by SCP (SCP has access
10 to AP SRAM).
11- GICv4
12- Trusted Board Boot
13- SCMI
14- MHUv2
15
Usama Ariff1513622021-04-09 17:07:41 +010016Currently, the main difference between TC0 (TARGET_PLATFORM=0) and TC1
17(TARGET_PLATFORM=1) platforms w.r.t to TF-A is the CPUs supported. TC0 has
18support for Cortex A510, Cortex A710 and Cortex X2, while TC1 has support for
19Cortex A510, Cortex Makalu and Cortex Makalu ELP Arm CPUs.
20
21
Usama Arifbec5afd2020-04-17 16:13:39 +010022Boot Sequence
23-------------
24
25The execution begins from SCP_BL1. SCP_BL1 powers up the AP which starts
26executing AP_BL1 and then executes AP_BL2 which loads the SCP_BL2 from
27FIP to SRAM. The SCP has access to AP SRAM. The address and size of SCP_BL2
28is communicated to SCP using SDS. SCP copies SCP_BL2 from SRAM to its own
29RAM and starts executing it. The AP then continues executing the rest of TF-A
30stages including BL31 runtime stage and hands off executing to
31Non-secure world (u-boot).
32
33Build Procedure (TF-A only)
34~~~~~~~~~~~~~~~~~~~~~~~~~~~
35
36- Obtain arm `toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>`_.
37 Set the CROSS_COMPILE environment variable to point to the toolchain folder.
38
39- Build TF-A:
40
41 .. code:: shell
42
Usama Ariff1513622021-04-09 17:07:41 +010043 make PLAT=tc BL33=<path_to_uboot.bin> \
44 SCP_BL2=<path_to_scp_ramfw.bin> TARGET_PLATFORM={0,1} all fip
Usama Arifbec5afd2020-04-17 16:13:39 +010045
46 Enable TBBR by adding the following options to the make command:
47
48 .. code:: shell
49
50 MBEDTLS_DIR=<path_to_mbedtls_directory> \
51 TRUSTED_BOARD_BOOT=1 \
52 GENERATE_COT=1 \
53 ARM_ROTPK_LOCATION=devel_rsa \
54 ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem
55
Usama Ariff1513622021-04-09 17:07:41 +010056*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*