10260eb0dSVishnu BanavathCorstone1000 Platform 20260eb0dSVishnu Banavath========================== 30260eb0dSVishnu Banavath 40260eb0dSVishnu BanavathSome of the features of the Corstone1000 platform referenced in TF-A include: 50260eb0dSVishnu Banavath 60260eb0dSVishnu Banavath- Cortex-A35 application processor (64-bit mode) 70260eb0dSVishnu Banavath- Secure Enclave 80260eb0dSVishnu Banavath- GIC-400 90260eb0dSVishnu Banavath- Trusted Board Boot 100260eb0dSVishnu Banavath 110260eb0dSVishnu BanavathBoot Sequence 120260eb0dSVishnu Banavath------------- 130260eb0dSVishnu Banavath 140260eb0dSVishnu BanavathThe board boot relies on CoT (chain of trust). The trusted-firmware-a 150260eb0dSVishnu BanavathBL2 is extracted from the FIP and verified by the Secure Enclave 160260eb0dSVishnu Banavathprocessor. BL2 verification relies on the signature area at the 170260eb0dSVishnu Banavathbeginning of the BL2 image. This area is needed by the SecureEnclave 180260eb0dSVishnu Banavathbootloader. 190260eb0dSVishnu Banavath 200260eb0dSVishnu BanavathThen, the application processor is released from reset and starts by 210260eb0dSVishnu Banavathexecuting BL2. 220260eb0dSVishnu Banavath 230260eb0dSVishnu BanavathBL2 performs the actions described in the trusted-firmware-a TBB design 240260eb0dSVishnu Banavathdocument. 250260eb0dSVishnu Banavath 260260eb0dSVishnu BanavathBuild Procedure (TF-A only) 270260eb0dSVishnu Banavath~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280260eb0dSVishnu Banavath 290260eb0dSVishnu Banavath- Obtain AArch64 ELF bare-metal target `toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>`_. 300260eb0dSVishnu Banavath Set the CROSS_COMPILE environment variable to point to the toolchain folder. 310260eb0dSVishnu Banavath 320260eb0dSVishnu Banavath- Build TF-A: 330260eb0dSVishnu Banavath 340260eb0dSVishnu Banavath .. code:: shell 350260eb0dSVishnu Banavath 360260eb0dSVishnu Banavath make LD=aarch64-none-elf-ld \ 370260eb0dSVishnu Banavath CC=aarch64-none-elf-gcc \ 380260eb0dSVishnu Banavath V=1 \ 390260eb0dSVishnu Banavath BUILD_BASE=<path to the build folder> \ 400260eb0dSVishnu Banavath PLAT=corstone1000 \ 410260eb0dSVishnu Banavath SPD=spmd \ 420260eb0dSVishnu Banavath SPMD_SPM_AT_SEL2=0 \ 430260eb0dSVishnu Banavath DEBUG=1 \ 440260eb0dSVishnu Banavath MBEDTLS_DIR=mbedtls \ 450260eb0dSVishnu Banavath OPENSSL_DIR=<path to openssl usr folder> \ 460260eb0dSVishnu Banavath RUNTIME_SYSROOT=<path to the sysroot> \ 470260eb0dSVishnu Banavath ARCH=aarch64 \ 480260eb0dSVishnu Banavath TARGET_PLATFORM=<fpga or fvp> \ 490260eb0dSVishnu Banavath ENABLE_PIE=1 \ 50*42d4d3baSArvind Ram Prakash RESET_TO_BL2=1 \ 510260eb0dSVishnu Banavath CREATE_KEYS=1 \ 520260eb0dSVishnu Banavath GENERATE_COT=1 \ 530260eb0dSVishnu Banavath TRUSTED_BOARD_BOOT=1 \ 540260eb0dSVishnu Banavath COT=tbbr \ 550260eb0dSVishnu Banavath ARM_ROTPK_LOCATION=devel_rsa \ 560260eb0dSVishnu Banavath ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \ 570260eb0dSVishnu Banavath BL32=<path to optee binary> \ 580260eb0dSVishnu Banavath BL33=<path to u-boot binary> \ 590260eb0dSVishnu Banavath bl2 600260eb0dSVishnu Banavath 61*42d4d3baSArvind Ram Prakash*Copyright (c) 2021-2023, Arm Limited. All rights reserved.* 62