1PLATFORM_FLAVOR ?= qemu_virt 2 3ifeq ($(PLATFORM_FLAVOR),qemu_virt) 4include core/arch/arm/cpu/cortex-a15.mk 5endif 6ifeq ($(PLATFORM_FLAVOR),fvp) 7include core/arch/arm/cpu/cortex-armv8-0.mk 8platform-debugger-arm := 1 9endif 10ifeq ($(PLATFORM_FLAVOR),juno) 11include core/arch/arm/cpu/cortex-armv8-0.mk 12platform-debugger-arm := 1 13# Workaround 808870: Unconditional VLDM instructions might cause an 14# alignment fault even though the address is aligned 15# Either hard float must be disabled for AArch32 or strict alignment checks 16# must be disabled 17ifeq ($(CFG_SCTLR_ALIGNMENT_CHECK),y) 18$(call force,CFG_TA_ARM32_NO_HARD_FLOAT_SUPPORT,y) 19else 20$(call force,CFG_SCTLR_ALIGNMENT_CHECK,n) 21endif 22endif #juno 23ifeq ($(PLATFORM_FLAVOR),qemu_armv8a) 24include core/arch/arm/cpu/cortex-armv8-0.mk 25CFG_ARM64_core ?= y 26endif 27 28 29ifeq ($(platform-debugger-arm),1) 30# ARM debugger needs this 31platform-cflags-debug-info = -gdwarf-2 32platform-aflags-debug-info = -gdwarf-2 33endif 34 35ifeq ($(platform-flavor-armv8),1) 36$(call force,CFG_WITH_ARM_TRUSTED_FW,y) 37endif 38 39$(call force,CFG_PL011,y) 40$(call force,CFG_SECURE_TIME_SOURCE_CNTPCT,y) 41 42ifeq ($(CFG_CORE_TPM_EVENT_LOG),y) 43# NOTE: Below values for the TPM event log are implementation 44# dependent and used mostly for debugging purposes. 45# Care must be taken to properly configure them if used. 46CFG_TPM_LOG_BASE_ADDR ?= 0x402c951 47CFG_TPM_MAX_LOG_SIZE ?= 0x200 48endif 49 50ifneq ($(CFG_ARM64_core),y) 51$(call force,CFG_ARM32_core,y) 52endif 53 54CFG_WITH_STATS ?= y 55CFG_ENABLE_EMBEDDED_TESTS ?= y 56 57ifeq ($(CFG_CORE_SEL2_SPMC),y) 58$(call force,CFG_CORE_RESERVED_SHM,n) 59CFG_GIC ?= n 60else 61$(call force,CFG_GIC,y) 62endif 63 64ifeq ($(PLATFORM_FLAVOR),fvp) 65CFG_TEE_CORE_NB_CORE = 8 66ifeq ($(CFG_CORE_SEL2_SPMC),y) 67CFG_TZDRAM_START ?= 0x06281000 68CFG_TZDRAM_SIZE ?= 0x01D80000 69else 70CFG_TZDRAM_START ?= 0x06000000 71CFG_TZDRAM_SIZE ?= 0x02000000 72endif 73CFG_SHMEM_START ?= 0x83000000 74CFG_SHMEM_SIZE ?= 0x00200000 75# DRAM1 is defined above 4G 76$(call force,CFG_CORE_LARGE_PHYS_ADDR,y) 77$(call force,CFG_CORE_ARM64_PA_BITS,36) 78ifeq ($(CFG_SCMI_SCPFW),y) 79$(call force,CFG_SCMI_SCPFW_PRODUCT,optee-fvp) 80endif 81endif 82 83ifeq ($(PLATFORM_FLAVOR),juno) 84CFG_TEE_CORE_NB_CORE = 6 85CFG_TZDRAM_START ?= 0xff000000 86CFG_TZDRAM_SIZE ?= 0x00ff8000 87CFG_SHMEM_START ?= 0xfee00000 88CFG_SHMEM_SIZE ?= 0x00200000 89# DRAM1 is defined above 4G 90$(call force,CFG_CORE_LARGE_PHYS_ADDR,y) 91$(call force,CFG_CORE_ARM64_PA_BITS,36) 92CFG_CRYPTO_WITH_CE ?= y 93CFG_ARM_SMCCC_TRNG ?= y 94CFG_WITH_SOFTWARE_PRNG ?= n 95endif 96 97ifeq ($(PLATFORM_FLAVOR),qemu_virt) 98CFG_TEE_CORE_NB_CORE = 4 99# [0e00.0000 0e0f.ffff] is reserved to early boot 100CFG_TZDRAM_START ?= 0x0e100000 101CFG_TZDRAM_SIZE ?= 0x00f00000 102CFG_SHMEM_START ?= 0x7fe00000 103CFG_SHMEM_SIZE ?= 0x00200000 104# When Secure Data Path is enable, last MByte of TZDRAM is SDP test memory. 105CFG_TEE_SDP_MEM_SIZE ?= 0x00400000 106# Set VA space to 2MB for Kasan offset to match LPAE and 32bit MMU configs 107CFG_TEE_RAM_VA_SIZE ?= 0x00200000 108ifeq ($(CFG_CORE_SANITIZE_KADDRESS),y) 109# CFG_ASAN_SHADOW_OFFSET is calculated as: 110# (&__asan_shadow_start - (TEE_RAM_VA_START / 8) 111# This is unfortunately currently not possible to do in make so we have to 112# calculate it offline, there's some asserts in 113# core/arch/arm/kernel/generic_boot.c to check that we got it right 114CFG_ASAN_SHADOW_OFFSET = 0xc6a71c0 115endif 116$(call force,CFG_BOOT_SECONDARY_REQUEST,y) 117$(call force,CFG_PSCI_ARM32,y) 118$(call force,CFG_DT,y) 119CFG_DTB_MAX_SIZE ?= 0x100000 120CFG_CORE_ASYNC_NOTIF ?= y 121CFG_CORE_ASYNC_NOTIF_GIC_INTID ?= 219 122endif 123 124ifeq ($(PLATFORM_FLAVOR),qemu_armv8a) 125CFG_TEE_CORE_NB_CORE = 4 126ifneq ($(CFG_CORE_SEL2_SPMC),y) 127# [0e00.0000 0e0f.ffff] is reserved to early boot 128CFG_TZDRAM_START ?= 0x0e100000 129CFG_TZDRAM_SIZE ?= 0x00f00000 130# SHM chosen arbitrary, in a way that it does not interfere 131# with initial location of linux kernel, dtb and initrd. 132CFG_SHMEM_START ?= 0x42000000 133CFG_SHMEM_SIZE ?= 0x00200000 134# When Secure Data Path is enable, last MByte of TZDRAM is SDP test memory. 135CFG_TEE_SDP_MEM_SIZE ?= 0x00400000 136endif 137$(call force,CFG_DT,y) 138CFG_DTB_MAX_SIZE ?= 0x100000 139ifeq ($(CFG_SCMI_SCPFW),y) 140$(call force,CFG_SCMI_SCPFW_PRODUCT,optee-fvp) 141endif 142endif 143 144ifneq (,$(filter $(PLATFORM_FLAVOR),qemu_virt qemu_armv8a)) 145CFG_DT_DRIVER_EMBEDDED_TEST ?= y 146ifeq ($(CFG_DT_DRIVER_EMBEDDED_TEST),y) 147$(call force,CFG_EMBED_DTB_SOURCE_FILE,embedded_dtb_test.dts,Mandated for DT tests) 148endif 149endif 150