19fc53171SJerome ForissierPLATFORM_FLAVOR ?= qemu_virt 2abe38974SJens Wiklander 343896851SEtienne Carriereifeq ($(PLATFORM_FLAVOR),qemu_virt) 443896851SEtienne Carriereinclude core/arch/arm/cpu/cortex-a15.mk 543896851SEtienne Carriereendif 6739804b5SJens Wiklanderifeq ($(PLATFORM_FLAVOR),fvp) 743896851SEtienne Carriereinclude core/arch/arm/cpu/cortex-armv8-0.mk 8422e54f5SJens Wiklanderplatform-debugger-arm := 1 9739804b5SJens Wiklanderendif 10739804b5SJens Wiklanderifeq ($(PLATFORM_FLAVOR),juno) 1143896851SEtienne Carriereinclude core/arch/arm/cpu/cortex-armv8-0.mk 12422e54f5SJens Wiklanderplatform-debugger-arm := 1 139551f4e5SJens Wiklander# Workaround 808870: Unconditional VLDM instructions might cause an 149551f4e5SJens Wiklander# alignment fault even though the address is aligned 156ee9f666SJens Wiklander# Either hard float must be disabled for AArch32 or strict alignment checks 166ee9f666SJens Wiklander# must be disabled 176ee9f666SJens Wiklanderifeq ($(CFG_SCTLR_ALIGNMENT_CHECK),y) 189551f4e5SJens Wiklander$(call force,CFG_TA_ARM32_NO_HARD_FLOAT_SUPPORT,y) 196ee9f666SJens Wiklanderelse 206ee9f666SJens Wiklander$(call force,CFG_SCTLR_ALIGNMENT_CHECK,n) 21422e54f5SJens Wiklanderendif 226ee9f666SJens Wiklanderendif #juno 23422e54f5SJens Wiklanderifeq ($(PLATFORM_FLAVOR),qemu_armv8a) 2443896851SEtienne Carriereinclude core/arch/arm/cpu/cortex-armv8-0.mk 25b2aee603SJerome ForissierCFG_ARM64_core ?= y 2692166431SJerome Forissiersupported-ta-targets ?= ta_arm64 ta_arm32 27739804b5SJens Wiklanderendif 28*21a4ce17SJens Wiklanderifeq ($(PLATFORM_FLAVOR),qemu_sbsa) 29*21a4ce17SJens Wiklanderinclude core/arch/arm/cpu/cortex-armv8-0.mk 30*21a4ce17SJens WiklanderCFG_ARM64_core ?= y 31*21a4ce17SJens Wiklanderendif 32739804b5SJens Wiklander 33422e54f5SJens Wiklander 34422e54f5SJens Wiklanderifeq ($(platform-debugger-arm),1) 35739804b5SJens Wiklander# ARM debugger needs this 36739804b5SJens Wiklanderplatform-cflags-debug-info = -gdwarf-2 37739804b5SJens Wiklanderplatform-aflags-debug-info = -gdwarf-2 38739804b5SJens Wiklanderendif 39739804b5SJens Wiklander 40739804b5SJens Wiklanderifeq ($(platform-flavor-armv8),1) 41739804b5SJens Wiklander$(call force,CFG_WITH_ARM_TRUSTED_FW,y) 42739804b5SJens Wiklanderendif 43dffb0049SJerome Forissier 44dffb0049SJerome Forissier$(call force,CFG_PL011,y) 45dffb0049SJerome Forissier$(call force,CFG_SECURE_TIME_SOURCE_CNTPCT,y) 46dffb0049SJerome Forissier 47dd333f03SJavier Almansa Sobrinoifeq ($(CFG_CORE_TPM_EVENT_LOG),y) 48dd333f03SJavier Almansa Sobrino# NOTE: Below values for the TPM event log are implementation 49dd333f03SJavier Almansa Sobrino# dependent and used mostly for debugging purposes. 50dd333f03SJavier Almansa Sobrino# Care must be taken to properly configure them if used. 51dd333f03SJavier Almansa SobrinoCFG_TPM_LOG_BASE_ADDR ?= 0x402c951 52dd333f03SJavier Almansa SobrinoCFG_TPM_MAX_LOG_SIZE ?= 0x200 53dd333f03SJavier Almansa Sobrinoendif 54dd333f03SJavier Almansa Sobrino 55aeb2ac09SJerome Forissierifneq ($(CFG_ARM64_core),y) 56dffb0049SJerome Forissier$(call force,CFG_ARM32_core,y) 57dffb0049SJerome Forissierendif 58dffb0049SJerome Forissier 5993074435SPascal BrandCFG_WITH_STATS ?= y 60811c42d4SJerome ForissierCFG_ENABLE_EMBEDDED_TESTS ?= y 61abe38974SJens Wiklander 62bcfcc2c5SJens Wiklanderifeq ($(CFG_CORE_SEL2_SPMC),y) 63bcfcc2c5SJens Wiklander$(call force,CFG_CORE_RESERVED_SHM,n) 64bcfcc2c5SJens WiklanderCFG_GIC ?= n 65bcfcc2c5SJens Wiklanderelse 66bcfcc2c5SJens Wiklander$(call force,CFG_GIC,y) 67bcfcc2c5SJens Wiklanderendif 68bcfcc2c5SJens Wiklander 6924475b56SEtienne Carriereifeq ($(PLATFORM_FLAVOR),fvp) 707653887eSGatien ChevallierCFG_MULTI_CORE_HALTING ?= y 71faebe4b0SEtienne CarriereCFG_TEE_CORE_NB_CORE ?= 8 72fb19e98eSJens Wiklanderifeq ($(CFG_CORE_SEL2_SPMC),y) 73fb19e98eSJens WiklanderCFG_TZDRAM_START ?= 0x06281000 74fb19e98eSJens WiklanderCFG_TZDRAM_SIZE ?= 0x01D80000 75fb19e98eSJens Wiklanderelse 7603314a3aSEtienne CarriereCFG_TZDRAM_START ?= 0x06000000 7703314a3aSEtienne CarriereCFG_TZDRAM_SIZE ?= 0x02000000 78fb19e98eSJens Wiklanderendif 7903314a3aSEtienne CarriereCFG_SHMEM_START ?= 0x83000000 8003314a3aSEtienne CarriereCFG_SHMEM_SIZE ?= 0x00200000 8124475b56SEtienne Carriere# DRAM1 is defined above 4G 8224475b56SEtienne Carriere$(call force,CFG_CORE_LARGE_PHYS_ADDR,y) 834518cdc1SJens Wiklander$(call force,CFG_CORE_ARM64_PA_BITS,36) 84efc40767SJens WiklanderCFG_AUTO_MAX_PA_BITS ?= y 850aed2b11SVincent Guittotifeq ($(CFG_SCMI_SCPFW),y) 86bf870398SVincent Guittot$(call force,CFG_SCMI_SCPFW_PRODUCT,fvp) 870aed2b11SVincent Guittotendif 888e9d8accSJens Wiklanderifeq ($(CFG_CORE_SEL1_SPMC),y) 898e9d8accSJens WiklanderCFG_CORE_ASYNC_NOTIF_GIC_INTID ?= 9 908e9d8accSJens Wiklanderendif 9124475b56SEtienne Carriereendif 9224475b56SEtienne Carriere 93abe38974SJens Wiklanderifeq ($(PLATFORM_FLAVOR),juno) 947653887eSGatien ChevallierCFG_MULTI_CORE_HALTING ?= y 95faebe4b0SEtienne CarriereCFG_TEE_CORE_NB_CORE ?= 6 9603314a3aSEtienne CarriereCFG_TZDRAM_START ?= 0xff000000 9703314a3aSEtienne CarriereCFG_TZDRAM_SIZE ?= 0x00ff8000 9803314a3aSEtienne CarriereCFG_SHMEM_START ?= 0xfee00000 9903314a3aSEtienne CarriereCFG_SHMEM_SIZE ?= 0x00200000 10024475b56SEtienne Carriere# DRAM1 is defined above 4G 10124475b56SEtienne Carriere$(call force,CFG_CORE_LARGE_PHYS_ADDR,y) 1024518cdc1SJens Wiklander$(call force,CFG_CORE_ARM64_PA_BITS,36) 1037823a7b5SPascal BrandCFG_CRYPTO_WITH_CE ?= y 1042ac060b7SEtienne CarriereCFG_ARM_SMCCC_TRNG ?= y 1052ac060b7SEtienne CarriereCFG_WITH_SOFTWARE_PRNG ?= n 106abe38974SJens Wiklanderendif 107abe38974SJens Wiklander 108dffb0049SJerome Forissierifeq ($(PLATFORM_FLAVOR),qemu_virt) 109b4ed37a8SJens WiklanderCFG_CORE_HEAP_SIZE ?= 98304 1107653887eSGatien ChevallierCFG_MULTI_CORE_HALTING ?= y 111faebe4b0SEtienne CarriereCFG_TEE_CORE_NB_CORE ?= 4 11203314a3aSEtienne Carriere# [0e00.0000 0e0f.ffff] is reserved to early boot 11303314a3aSEtienne CarriereCFG_TZDRAM_START ?= 0x0e100000 11403314a3aSEtienne CarriereCFG_TZDRAM_SIZE ?= 0x00f00000 11503314a3aSEtienne CarriereCFG_SHMEM_START ?= 0x7fe00000 11603314a3aSEtienne CarriereCFG_SHMEM_SIZE ?= 0x00200000 11703314a3aSEtienne Carriere# When Secure Data Path is enable, last MByte of TZDRAM is SDP test memory. 11803314a3aSEtienne CarriereCFG_TEE_SDP_MEM_SIZE ?= 0x00400000 11903314a3aSEtienne Carriere# Set VA space to 2MB for Kasan offset to match LPAE and 32bit MMU configs 12003314a3aSEtienne CarriereCFG_TEE_RAM_VA_SIZE ?= 0x00200000 1211d171f95SJens Wiklanderifeq ($(CFG_CORE_SANITIZE_KADDRESS),y) 1221d171f95SJens Wiklander# CFG_ASAN_SHADOW_OFFSET is calculated as: 1236a815afaSZeng Tao# (&__asan_shadow_start - (TEE_RAM_VA_START / 8) 1241d171f95SJens Wiklander# This is unfortunately currently not possible to do in make so we have to 1251d171f95SJens Wiklander# calculate it offline, there's some asserts in 1261d171f95SJens Wiklander# core/arch/arm/kernel/generic_boot.c to check that we got it right 1276bb6ea5aSEtienne CarriereCFG_ASAN_SHADOW_OFFSET ?= 0xc6a71c0 1281d171f95SJens Wiklanderendif 1295402a9feSJens Wiklander$(call force,CFG_BOOT_SECONDARY_REQUEST,y) 1305402a9feSJens Wiklander$(call force,CFG_PSCI_ARM32,y) 131834b346bSJens Wiklander$(call force,CFG_DT,y) 132078b214aSJerome ForissierCFG_DTB_MAX_SIZE ?= 0x100000 1337b06f6caSJens WiklanderCFG_CORE_ASYNC_NOTIF ?= y 1347b06f6caSJens WiklanderCFG_CORE_ASYNC_NOTIF_GIC_INTID ?= 219 135abe38974SJens Wiklanderendif 1363ff067c4SJens Wiklander 13724475b56SEtienne Carriereifeq ($(PLATFORM_FLAVOR),qemu_armv8a) 138c2e42a8fSJerome ForissierCFG_CORE_TZSRAM_EMUL_SIZE ?= 655360 139b4ed37a8SJens WiklanderCFG_CORE_HEAP_SIZE ?= 196608 1407653887eSGatien ChevallierCFG_MULTI_CORE_HALTING ?= y 141faebe4b0SEtienne CarriereCFG_TEE_CORE_NB_CORE ?= 4 142efc40767SJens WiklanderCFG_AUTO_MAX_PA_BITS ?= y 14361150e54SJens Wiklanderifeq ($(CFG_ARM_GICV3),y) 14461150e54SJens WiklanderCFG_CORE_CLUSTER_SHIFT ?= 4 14561150e54SJens Wiklanderelse 14661150e54SJens WiklanderCFG_CORE_CLUSTER_SHIFT ?= 3 14761150e54SJens Wiklanderendif 148bcfcc2c5SJens Wiklanderifneq ($(CFG_CORE_SEL2_SPMC),y) 14903314a3aSEtienne Carriere# [0e00.0000 0e0f.ffff] is reserved to early boot 15003314a3aSEtienne CarriereCFG_TZDRAM_START ?= 0x0e100000 15103314a3aSEtienne CarriereCFG_TZDRAM_SIZE ?= 0x00f00000 15203314a3aSEtienne Carriere# SHM chosen arbitrary, in a way that it does not interfere 15303314a3aSEtienne Carriere# with initial location of linux kernel, dtb and initrd. 15403314a3aSEtienne CarriereCFG_SHMEM_START ?= 0x42000000 15503314a3aSEtienne CarriereCFG_SHMEM_SIZE ?= 0x00200000 15603314a3aSEtienne Carriere# When Secure Data Path is enable, last MByte of TZDRAM is SDP test memory. 15703314a3aSEtienne CarriereCFG_TEE_SDP_MEM_SIZE ?= 0x00400000 158e367213cSJerome Forissierifeq ($(CFG_CORE_SANITIZE_KADDRESS),y) 159e367213cSJerome Forissier# See comment above 1606bb6ea5aSEtienne CarriereCFG_ASAN_SHADOW_OFFSET ?= 0xc6a71c0 161e367213cSJerome Forissierendif 162bcfcc2c5SJens Wiklanderendif 16324475b56SEtienne Carriere$(call force,CFG_DT,y) 164078b214aSJerome ForissierCFG_DTB_MAX_SIZE ?= 0x100000 1650aed2b11SVincent Guittotifeq ($(CFG_SCMI_SCPFW),y) 166bf870398SVincent Guittot$(call force,CFG_SCMI_SCPFW_PRODUCT,fvp) 1670aed2b11SVincent Guittotendif 1688e9d8accSJens Wiklander 169e57fbe32SJens WiklanderCFG_CORE_ASYNC_NOTIF ?= y 1708e9d8accSJens Wiklanderifeq ($(CFG_CORE_SEL1_SPMC),y) 1718e9d8accSJens WiklanderCFG_CORE_ASYNC_NOTIF_GIC_INTID ?= 8 1728e9d8accSJens Wiklanderelse ifneq ($(CFG_CORE_SEL2_SPMC),y) 173e57fbe32SJens WiklanderCFG_CORE_ASYNC_NOTIF_GIC_INTID ?= 219 174785be2eeSJens Wiklanderendif 1758e9d8accSJens Wiklanderendif #PLATFORM_FLAVOR==qemu_armv8a 1763e03eb38SEtienne Carriere 177*21a4ce17SJens Wiklanderifeq ($(PLATFORM_FLAVOR),qemu_sbsa) 178*21a4ce17SJens WiklanderCFG_CORE_HEAP_SIZE ?= 196608 179*21a4ce17SJens WiklanderCFG_HALT_CORES_ON_PANIC ?= y 180*21a4ce17SJens WiklanderCFG_TEE_CORE_NB_CORE ?= 4 181*21a4ce17SJens WiklanderCFG_AUTO_MAX_PA_BITS ?= y 182*21a4ce17SJens WiklanderCFG_CORE_RESERVED_SHM ?= n 183*21a4ce17SJens Wiklanderifeq ($(CFG_CORE_SEL2_SPMC),y) 184*21a4ce17SJens Wiklanderelse 185*21a4ce17SJens Wiklander$(call force,CFG_ARM_GICV3,y) 186*21a4ce17SJens Wiklander$(call force,CFG_DT_ADDR,0) 187*21a4ce17SJens Wiklander$(call force,CFG_DT,y) 188*21a4ce17SJens WiklanderCFG_DTB_MAX_SIZE ?= 0x100000 189*21a4ce17SJens Wiklanderendif 190*21a4ce17SJens Wiklanderendif #PLATFORM==qemu_sbsa 191*21a4ce17SJens Wiklander 1923e03eb38SEtienne Carriereifneq (,$(filter $(PLATFORM_FLAVOR),qemu_virt qemu_armv8a)) 1933e03eb38SEtienne CarriereCFG_DT_DRIVER_EMBEDDED_TEST ?= y 1943e03eb38SEtienne Carriereifeq ($(CFG_DT_DRIVER_EMBEDDED_TEST),y) 1953e03eb38SEtienne Carriere$(call force,CFG_EMBED_DTB_SOURCE_FILE,embedded_dtb_test.dts,Mandated for DT tests) 1963e03eb38SEtienne Carriereendif 1973e03eb38SEtienne Carriereendif 19828788536SJerome Forissier 19928788536SJerome ForissierCFG_PKCS11_TA ?= y 2003672a61bSEtienne CarriereCFG_PKCS11_TA_RSA_X_509 ?= y 201