1ac13d5f3SPatrick Williams# FVP specific TFA parameters 2ac13d5f3SPatrick Williams 3ac13d5f3SPatrick Williams# 4ac13d5f3SPatrick Williams# Armv8-A Base Platform FVP 5ac13d5f3SPatrick Williams# 6ac13d5f3SPatrick Williams 7*edff4923SAndrew GeisslerFILESEXTRAPATHS:prepend := "${THISDIR}/files/:${THISDIR}/files/fvp-base" 8ac13d5f3SPatrick Williams 9*edff4923SAndrew GeisslerSRC_URI:append = " \ 10*edff4923SAndrew Geissler file://optee_spmc_maifest.dts;subdir=git/plat/arm/board/fvp/fdts \ 11*edff4923SAndrew Geissler" 12*edff4923SAndrew Geissler 13*edff4923SAndrew Geissler# OP-TEE SPMC related configuration 14*edff4923SAndrew GeisslerSPMC_IS_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'arm-ffa', '0' \ 15*edff4923SAndrew Geissler if d.getVar('SEL2_SPMC') == '1' else '1', '0', d)}" 16*edff4923SAndrew Geissler# Configure the SPMC manifest file. 17*edff4923SAndrew GeisslerTFA_ARM_SPMC_MANIFEST_DTS = "${@oe.utils.conditional('SPMC_IS_OPTEE', '1', \ 18*edff4923SAndrew Geissler '${S}/plat/arm/board/fvp/fdts/optee_spmc_maifest.dts', '', d)}" 19*edff4923SAndrew GeisslerEXTRA_OEMAKE += "${@bb.utils.contains('MACHINE_FEATURES','arm-ffa', \ 20*edff4923SAndrew Geissler 'ARM_SPMC_MANIFEST_DTS=${TFA_ARM_SPMC_MANIFEST_DTS}' \ 21*edff4923SAndrew Geissler if d.getVar('TFA_ARM_SPMC_MANIFEST_DTS') else '', '', d)}" 22*edff4923SAndrew Geissler 23*edff4923SAndrew Geissler# Set OP-TEE SPMC specific TF-A config settings 24*edff4923SAndrew GeisslerTFA_SPMD_SPM_AT_SEL2 := '0' 25*edff4923SAndrew GeisslerTFA_SPD := "${@oe.utils.conditional('SPMC_IS_OPTEE', '1', 'spmd', \ 26*edff4923SAndrew Geissler d.getVar('TFA_SPD'), d)}" 27*edff4923SAndrew GeisslerDEPENDS += " ${@oe.utils.conditional('SPMC_IS_OPTEE', '1', 'optee-os', '', d)}" 28*edff4923SAndrew Geissler 29*edff4923SAndrew Geissler# Configure measured boot if the attestation SP is deployed. 30*edff4923SAndrew GeisslerTFA_MB_FLAGS += " \ 31*edff4923SAndrew Geissler ARM_ROTPK_LOCATION=devel_rsa \ 32*edff4923SAndrew Geissler EVENT_LOG_LEVEL=20 \ 33*edff4923SAndrew Geissler GENERATE_COT=1 \ 34*edff4923SAndrew Geissler MBOOT_EL_HASH_ALG=sha256 \ 35*edff4923SAndrew Geissler MEASURED_BOOT=1 \ 36*edff4923SAndrew Geissler ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem \ 37*edff4923SAndrew Geissler TRUSTED_BOARD_BOOT=1 \ 38*edff4923SAndrew Geissler" 39*edff4923SAndrew GeisslerEXTRA_OEMAKE += "${@bb.utils.contains('MACHINE_FEATURES', 'ts-attestation',\ 40*edff4923SAndrew Geissler '${TFA_MB_FLAGS}','', d)}" 41*edff4923SAndrew Geissler 42*edff4923SAndrew Geissler# Add OP-TEE as BL32. 43*edff4923SAndrew GeisslerBL32 = "${@oe.utils.conditional('SPMC_IS_OPTEE', '1',\ 44*edff4923SAndrew Geissler '${RECIPE_SYSROOT}/${nonarch_base_libdir}/firmware/tee-pager_v2.bin',\ 45*edff4923SAndrew Geissler '', d)}" 46*edff4923SAndrew GeisslerEXTRA_OEMAKE += "${@oe.utils.conditional('SPMC_IS_OPTEE', '1', \ 47*edff4923SAndrew Geissler ' BL32=${BL32}', '', d)}" 48*edff4923SAndrew Geissler 49*edff4923SAndrew Geissler# Generic configuration 50ac13d5f3SPatrick WilliamsCOMPATIBLE_MACHINE = "fvp-base" 51ac13d5f3SPatrick WilliamsTFA_PLATFORM = "fvp" 52*edff4923SAndrew Geissler# Disable debug build if measured boot is enabled. 53*edff4923SAndrew GeisslerTFA_DEBUG := "${@bb.utils.contains('MACHINE_FEATURES', 'ts-attestation', '0',\ 54*edff4923SAndrew Geissler d.getVar('TFA_DEBUG'), d)}" 55*edff4923SAndrew Geissler# Add mbedtls if measured boot is enabled 56*edff4923SAndrew GeisslerTFA_MBEDTLS := "${@bb.utils.contains('MACHINE_FEATURES', 'ts-attestation',\ 57*edff4923SAndrew Geissler '1', d.getVar('TFA_MBEDTLS'), d)}" 58ac13d5f3SPatrick WilliamsTFA_UBOOT ?= "1" 59ac13d5f3SPatrick WilliamsTFA_BUILD_TARGET = "bl1 bl2 bl31 dtbs fip" 60ac13d5f3SPatrick Williams 61*edff4923SAndrew GeisslerEXTRA_OEMAKE += "FVP_DT_PREFIX=fvp-base-gicv3-psci-1t FVP_USE_GIC_DRIVER=FVP_GICV3" 62ac13d5f3SPatrick Williams 63ac13d5f3SPatrick Williams# Our fvp-base machine explicitly has v8.4 cores 64ac13d5f3SPatrick WilliamsEXTRA_OEMAKE += "ARM_ARCH_MAJOR=8 ARM_ARCH_MINOR=4" 65