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