xref: /aosp_15_r20/external/arm-trusted-firmware/docs/plat/arm/tc/index.rst (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong ParkTC Total Compute Platform
2*54fd6939SJiyong Park==========================
3*54fd6939SJiyong Park
4*54fd6939SJiyong ParkSome of the features of TC platform referenced in TF-A include:
5*54fd6939SJiyong Park
6*54fd6939SJiyong Park- A `System Control Processor <https://github.com/ARM-software/SCP-firmware>`_
7*54fd6939SJiyong Park  to abstract power and system management tasks away from application
8*54fd6939SJiyong Park  processors. The RAM firmware for SCP is included in the TF-A FIP and is
9*54fd6939SJiyong Park  loaded by AP BL2 from FIP in flash to SRAM for copying by SCP (SCP has access
10*54fd6939SJiyong Park  to AP SRAM).
11*54fd6939SJiyong Park- GICv4
12*54fd6939SJiyong Park- Trusted Board Boot
13*54fd6939SJiyong Park- SCMI
14*54fd6939SJiyong Park- MHUv2
15*54fd6939SJiyong Park
16*54fd6939SJiyong ParkCurrently, the main difference between TC0 (TARGET_PLATFORM=0) and TC1
17*54fd6939SJiyong Park(TARGET_PLATFORM=1) platforms w.r.t to TF-A is the CPUs supported. TC0 has
18*54fd6939SJiyong Parksupport for Cortex A510, Cortex A710 and Cortex X2, while TC1 has support for
19*54fd6939SJiyong ParkCortex A510, Cortex Makalu and Cortex Makalu ELP Arm CPUs.
20*54fd6939SJiyong Park
21*54fd6939SJiyong Park
22*54fd6939SJiyong ParkBoot Sequence
23*54fd6939SJiyong Park-------------
24*54fd6939SJiyong Park
25*54fd6939SJiyong ParkThe execution begins from SCP_BL1. SCP_BL1 powers up the AP which starts
26*54fd6939SJiyong Parkexecuting AP_BL1 and then executes AP_BL2 which loads the SCP_BL2 from
27*54fd6939SJiyong ParkFIP to SRAM. The SCP has access to AP SRAM. The address and size of SCP_BL2
28*54fd6939SJiyong Parkis communicated to SCP using SDS. SCP copies SCP_BL2 from SRAM to its own
29*54fd6939SJiyong ParkRAM and starts executing it. The AP then continues executing the rest of TF-A
30*54fd6939SJiyong Parkstages including BL31 runtime stage and hands off executing to
31*54fd6939SJiyong ParkNon-secure world (u-boot).
32*54fd6939SJiyong Park
33*54fd6939SJiyong ParkBuild Procedure (TF-A only)
34*54fd6939SJiyong Park~~~~~~~~~~~~~~~~~~~~~~~~~~~
35*54fd6939SJiyong Park
36*54fd6939SJiyong Park-  Obtain arm `toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>`_.
37*54fd6939SJiyong Park   Set the CROSS_COMPILE environment variable to point to the toolchain folder.
38*54fd6939SJiyong Park
39*54fd6939SJiyong Park-  Build TF-A:
40*54fd6939SJiyong Park
41*54fd6939SJiyong Park   .. code:: shell
42*54fd6939SJiyong Park
43*54fd6939SJiyong Park      make PLAT=tc BL33=<path_to_uboot.bin> \
44*54fd6939SJiyong Park      SCP_BL2=<path_to_scp_ramfw.bin> TARGET_PLATFORM={0,1} all fip
45*54fd6939SJiyong Park
46*54fd6939SJiyong Park   Enable TBBR by adding the following options to the make command:
47*54fd6939SJiyong Park
48*54fd6939SJiyong Park   .. code:: shell
49*54fd6939SJiyong Park
50*54fd6939SJiyong Park      MBEDTLS_DIR=<path_to_mbedtls_directory>  \
51*54fd6939SJiyong Park      TRUSTED_BOARD_BOOT=1 \
52*54fd6939SJiyong Park      GENERATE_COT=1 \
53*54fd6939SJiyong Park      ARM_ROTPK_LOCATION=devel_rsa  \
54*54fd6939SJiyong Park      ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem
55*54fd6939SJiyong Park
56*54fd6939SJiyong Park*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*
57