xref: /rk3399_ARM-atf/docs/plat/arm/corstone1000/index.rst (revision a4c69581aec798af796d6783b51d9a62648c8db9)
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