1# Corstone1000 64-bit machines specific TFA support
2
3COMPATIBLE_MACHINE = "(corstone1000)"
4
5FILESEXTRAPATHS:prepend := "${THISDIR}/files/corstone1000:"
6SRC_URI:append = " \
7	file://0001-Fix-FF-A-version-in-SPMC-manifest.patch \
8	file://0002-fix-corstone1000-pass-spsr-value-explicitly.patch \
9	file://0003-fix-spmd-remove-EL3-interrupt-registration.patch \
10       "
11
12TFA_DEBUG = "1"
13TFA_UBOOT ?= "1"
14TFA_MBEDTLS = "1"
15TFA_BUILD_TARGET = "bl2 bl31 fip"
16
17# Enabling Secure-EL1 Payload Dispatcher (SPD)
18TFA_SPD = "spmd"
19# Cortex-A35 supports Armv8.0-A (no S-EL2 execution state).
20# So, the SPD SPMC component should run at the S-EL1 execution state
21TFA_SPMD_SPM_AT_SEL2 = "0"
22
23# BL2 loads BL32 (optee). So, optee needs to be built first:
24DEPENDS += "optee-os"
25
26# Note: Regarding the build option: LOG_LEVEL.
27# There seems to be an issue when setting it
28# to 50 (LOG_LEVEL_VERBOSE), where the kernel
29# tee driver sends yielding requests to OP-TEE
30# at a faster pace than OP-TEE processes them,
31# as the processing time is consumed by logging
32# in TF-A. When this issue occurs, booting halts
33# as soon as optee driver starts initialization.
34# Therefore, it's not currently recommended to
35# set LOG_LEVEL to 50 at all.
36EXTRA_OEMAKE:append = " \
37                        ARCH=aarch64 \
38                        TARGET_PLATFORM=${TFA_TARGET_PLATFORM} \
39                        ENABLE_STACK_PROTECTOR=strong \
40                        ENABLE_PIE=1 \
41                        RESET_TO_BL2=1 \
42                        CREATE_KEYS=1 \
43                        GENERATE_COT=1 \
44                        TRUSTED_BOARD_BOOT=1 \
45                        ARM_GPT_SUPPORT=1 \
46                        PSA_FWU_SUPPORT=1 \
47                        NR_OF_IMAGES_IN_FW_BANK=4 \
48                        COT=tbbr \
49                        ARM_ROTPK_LOCATION=devel_rsa  \
50                        ERRATA_A35_855472=1 \
51                        ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \
52                        BL32=${RECIPE_SYSROOT}/${nonarch_base_libdir}/firmware/tee-pager_v2.bin \
53                        FVP_USE_GIC_DRIVER=FVP_GICV2 \
54                        "
55