mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 09:04:17 +00:00

BL2_AT_EL3 is an overloaded macro which has two uses: 1. When BL2 is entry point into TF-A(no BL1) 2. When BL2 is running at EL3 exception level These two scenarios are not exactly same even though first implicitly means second to be true. To distinguish between these two use cases we introduce new macros. BL2_AT_EL3 is renamed to RESET_TO_BL2 to better convey both 1. and 2. Additional macro BL2_RUNS_AT_EL3 is added to cover all scenarious where BL2 runs at EL3 (including four world systems). BREAKING CHANGE: BL2_AT_EL3 renamed to RESET_TO_BL2 across the repository. Change-Id: I477e1d0f843b44b799c216670e028fcb3509fb72 Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
61 lines
1.8 KiB
ReStructuredText
61 lines
1.8 KiB
ReStructuredText
Corstone1000 Platform
|
|
==========================
|
|
|
|
Some of the features of the Corstone1000 platform referenced in TF-A include:
|
|
|
|
- Cortex-A35 application processor (64-bit mode)
|
|
- Secure Enclave
|
|
- GIC-400
|
|
- Trusted Board Boot
|
|
|
|
Boot Sequence
|
|
-------------
|
|
|
|
The board boot relies on CoT (chain of trust). The trusted-firmware-a
|
|
BL2 is extracted from the FIP and verified by the Secure Enclave
|
|
processor. BL2 verification relies on the signature area at the
|
|
beginning of the BL2 image. This area is needed by the SecureEnclave
|
|
bootloader.
|
|
|
|
Then, the application processor is released from reset and starts by
|
|
executing BL2.
|
|
|
|
BL2 performs the actions described in the trusted-firmware-a TBB design
|
|
document.
|
|
|
|
Build Procedure (TF-A only)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
- Obtain AArch64 ELF bare-metal target `toolchain <https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads>`_.
|
|
Set the CROSS_COMPILE environment variable to point to the toolchain folder.
|
|
|
|
- Build TF-A:
|
|
|
|
.. code:: shell
|
|
|
|
make LD=aarch64-none-elf-ld \
|
|
CC=aarch64-none-elf-gcc \
|
|
V=1 \
|
|
BUILD_BASE=<path to the build folder> \
|
|
PLAT=corstone1000 \
|
|
SPD=spmd \
|
|
SPMD_SPM_AT_SEL2=0 \
|
|
DEBUG=1 \
|
|
MBEDTLS_DIR=mbedtls \
|
|
OPENSSL_DIR=<path to openssl usr folder> \
|
|
RUNTIME_SYSROOT=<path to the sysroot> \
|
|
ARCH=aarch64 \
|
|
TARGET_PLATFORM=<fpga or fvp> \
|
|
ENABLE_PIE=1 \
|
|
RESET_TO_BL2=1 \
|
|
CREATE_KEYS=1 \
|
|
GENERATE_COT=1 \
|
|
TRUSTED_BOARD_BOOT=1 \
|
|
COT=tbbr \
|
|
ARM_ROTPK_LOCATION=devel_rsa \
|
|
ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \
|
|
BL32=<path to optee binary> \
|
|
BL33=<path to u-boot binary> \
|
|
bl2
|
|
|
|
*Copyright (c) 2021-2023, Arm Limited. All rights reserved.*
|