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