xref: /optee_os/core/arch/arm/plat-vexpress/conf.mk (revision 21a4ce17fb4d13c9e09d3858dda90143bcf41dd3)
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