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