xref: /aosp_15_r20/external/arm-trusted-firmware/docs/plat/arm/diphda/index.rst (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong ParkDiphda Platform
2*54fd6939SJiyong Park==========================
3*54fd6939SJiyong Park
4*54fd6939SJiyong ParkSome of the features of the Diphda platform referenced in TF-A include:
5*54fd6939SJiyong Park
6*54fd6939SJiyong Park- Cortex-A35 application processor (64-bit mode)
7*54fd6939SJiyong Park- Secure Enclave
8*54fd6939SJiyong Park- GIC-400
9*54fd6939SJiyong Park- Trusted Board Boot
10*54fd6939SJiyong Park
11*54fd6939SJiyong ParkBoot Sequence
12*54fd6939SJiyong Park-------------
13*54fd6939SJiyong Park
14*54fd6939SJiyong ParkThe board boot relies on CoT (chain of trust). The trusted-firmware-a
15*54fd6939SJiyong ParkBL2 is extracted from the FIP and verified by the Secure Enclave
16*54fd6939SJiyong Parkprocessor. BL2 verification relies on the signature area at the
17*54fd6939SJiyong Parkbeginning of the BL2 image. This area is needed by the SecureEnclave
18*54fd6939SJiyong Parkbootloader.
19*54fd6939SJiyong Park
20*54fd6939SJiyong ParkThen, the application processor is released from reset and starts by
21*54fd6939SJiyong Parkexecuting BL2.
22*54fd6939SJiyong Park
23*54fd6939SJiyong ParkBL2 performs the actions described in the trusted-firmware-a TBB design
24*54fd6939SJiyong Parkdocument.
25*54fd6939SJiyong Park
26*54fd6939SJiyong ParkBuild Procedure (TF-A only)
27*54fd6939SJiyong Park~~~~~~~~~~~~~~~~~~~~~~~~~~~
28*54fd6939SJiyong Park
29*54fd6939SJiyong Park-  Obtain AArch64 ELF bare-metal target `toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>`_.
30*54fd6939SJiyong Park   Set the CROSS_COMPILE environment variable to point to the toolchain folder.
31*54fd6939SJiyong Park
32*54fd6939SJiyong Park-  Build TF-A:
33*54fd6939SJiyong Park
34*54fd6939SJiyong Park   .. code:: shell
35*54fd6939SJiyong Park
36*54fd6939SJiyong Park      make LD=aarch64-none-elf-ld \
37*54fd6939SJiyong Park      CC=aarch64-none-elf-gcc \
38*54fd6939SJiyong Park      V=1 \
39*54fd6939SJiyong Park      BUILD_BASE=<path to the build folder> \
40*54fd6939SJiyong Park      PLAT=diphda \
41*54fd6939SJiyong Park      SPD=spmd \
42*54fd6939SJiyong Park      SPMD_SPM_AT_SEL2=0 \
43*54fd6939SJiyong Park      DEBUG=1 \
44*54fd6939SJiyong Park      MBEDTLS_DIR=mbedtls \
45*54fd6939SJiyong Park      OPENSSL_DIR=<path to openssl usr folder> \
46*54fd6939SJiyong Park      RUNTIME_SYSROOT=<path to the sysroot> \
47*54fd6939SJiyong Park      ARCH=aarch64 \
48*54fd6939SJiyong Park      TARGET_PLATFORM=<fpga or fvp> \
49*54fd6939SJiyong Park      ENABLE_PIE=1 \
50*54fd6939SJiyong Park      BL2_AT_EL3=1 \
51*54fd6939SJiyong Park      CREATE_KEYS=1 \
52*54fd6939SJiyong Park      GENERATE_COT=1 \
53*54fd6939SJiyong Park      TRUSTED_BOARD_BOOT=1 \
54*54fd6939SJiyong Park      COT=tbbr \
55*54fd6939SJiyong Park      ARM_ROTPK_LOCATION=devel_rsa \
56*54fd6939SJiyong Park      ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \
57*54fd6939SJiyong Park      BL32=<path to optee binary> \
58*54fd6939SJiyong Park      BL33=<path to u-boot binary> \
59*54fd6939SJiyong Park      bl2
60*54fd6939SJiyong Park
61*54fd6939SJiyong Park*Copyright (c) 2021, Arm Limited. All rights reserved.*
62