1PLATFORM_FLAVOR ?= mx6ulevk 2 3# Get SoC associated with the PLATFORM_FLAVOR 4mx6ul-flavorlist = \ 5 mx6ulevk \ 6 7mx6ull-flavorlist = \ 8 mx6ullevk \ 9 10mx6q-flavorlist = \ 11 mx6qsabrelite \ 12 mx6qsabresd \ 13 mx6qhmbedge \ 14 15mx6sx-flavorlist = \ 16 mx6sxsabreauto \ 17 mx6sxudooneofull \ 18 19mx6d-flavorlist = \ 20 mx6dhmbedge \ 21 22mx6dl-flavorlist = \ 23 mx6dlsabresd \ 24 mx6dlhmbedge \ 25 26mx6s-flavorlist = \ 27 mx6shmbedge \ 28 29mx7-flavorlist = \ 30 mx7dsabresd \ 31 mx7swarp7 \ 32 mx7dclsom \ 33 34imx8mq-flavorlist = \ 35 imx8mqevk 36 37imx8mm-flavorlist = \ 38 imx8mmevk 39 40ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6ul-flavorlist))) 41$(call force,CFG_MX6,y) 42$(call force,CFG_MX6UL,y) 43$(call force,CFG_TEE_CORE_NB_CORE,1) 44include core/arch/arm/cpu/cortex-a7.mk 45else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6ull-flavorlist))) 46$(call force,CFG_MX6,y) 47$(call force,CFG_MX6ULL,y) 48$(call force,CFG_TEE_CORE_NB_CORE,1) 49include core/arch/arm/cpu/cortex-a7.mk 50else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6q-flavorlist))) 51$(call force,CFG_MX6,y) 52$(call force,CFG_MX6Q,y) 53$(call force,CFG_TEE_CORE_NB_CORE,4) 54else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6d-flavorlist))) 55$(call force,CFG_MX6,y) 56$(call force,CFG_MX6D,y) 57$(call force,CFG_TEE_CORE_NB_CORE,2) 58else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6dl-flavorlist))) 59$(call force,CFG_MX6,y) 60$(call force,CFG_MX6DL,y) 61$(call force,CFG_TEE_CORE_NB_CORE,2) 62else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6s-flavorlist))) 63$(call force,CFG_MX6,y) 64$(call force,CFG_MX6S,y) 65$(call force,CFG_TEE_CORE_NB_CORE,1) 66else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6sx-flavorlist))) 67$(call force,CFG_MX6,y) 68$(call force,CFG_MX6SX,y) 69$(call force,CFG_TEE_CORE_NB_CORE,1) 70else ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx7-flavorlist))) 71$(call force,CFG_MX7,y) 72CFG_TEE_CORE_NB_CORE ?= 2 73include core/arch/arm/cpu/cortex-a7.mk 74else ifneq (,$(filter $(PLATFORM_FLAVOR),$(imx8mq-flavorlist))) 75$(call force,CFG_IMX8MQ,y) 76$(call force,CFG_ARM64_core,y) 77CFG_IMX_UART ?= y 78CFG_DRAM_BASE ?= 0x40000000 79CFG_TEE_CORE_NB_CORE ?= 4 80else ifneq (,$(filter $(PLATFORM_FLAVOR),$(imx8mm-flavorlist))) 81$(call force,CFG_IMX8MM,y) 82$(call force,CFG_ARM64_core,y) 83CFG_IMX_UART ?= y 84CFG_DRAM_BASE ?= 0x40000000 85CFG_TEE_CORE_NB_CORE ?= 4 86else 87$(error Unsupported PLATFORM_FLAVOR "$(PLATFORM_FLAVOR)") 88endif 89 90ifneq (,$(filter $(PLATFORM_FLAVOR),mx7dsabresd)) 91CFG_DDR_SIZE ?= 0x40000000 92CFG_NS_ENTRY_ADDR ?= 0x80800000 93$(call force,CFG_TEE_CORE_NB_CORE,2) 94endif 95 96ifneq (,$(filter $(PLATFORM_FLAVOR),mx7dclsom)) 97CFG_DDR_SIZE ?= 0x40000000 98CFG_UART_BASE ?= UART1_BASE 99endif 100 101ifneq (,$(filter $(PLATFORM_FLAVOR),mx7swarp7)) 102CFG_DDR_SIZE ?= 0x20000000 103CFG_NS_ENTRY_ADDR ?= 0x80800000 104CFG_BOOT_SECONDARY_REQUEST ?= n 105$(call force,CFG_TEE_CORE_NB_CORE,1) 106endif 107 108ifneq (,$(filter $(PLATFORM_FLAVOR),mx6qsabresd mx6dlsabresd \ 109 mx6dlsabrelite mx6dhmbedge mx6dlhmbedge)) 110CFG_DDR_SIZE ?= 0x40000000 111CFG_NS_ENTRY_ADDR ?= 0x12000000 112endif 113 114ifneq (,$(filter $(PLATFORM_FLAVOR),mx6qhmbedge)) 115CFG_DDR_SIZE ?= 0x80000000 116CFG_UART_BASE ?= UART1_BASE 117endif 118 119ifneq (,$(filter $(PLATFORM_FLAVOR),mx6shmbedge)) 120CFG_DDR_SIZE ?= 0x40000000 121CFG_NS_ENTRY_ADDR ?= 0x12000000 122endif 123 124ifneq (,$(filter $(PLATFORM_FLAVOR),mx6qsabrelite mx6dlsabrelite)) 125CFG_DDR_SIZE ?= 0x40000000 126CFG_NS_ENTRY_ADDR ?= 0x12000000 127CFG_UART_BASE ?= UART2_BASE 128endif 129 130ifneq (,$(filter $(PLATFORM_FLAVOR),mx6sxsabreauto)) 131CFG_DDR_SIZE ?= 0x80000000 132CFG_NS_ENTRY_ADDR ?= 0x80800000 133endif 134 135ifeq ($(PLATFORM_FLAVOR), mx6sxudooneofull) 136CFG_DDR_SIZE ?= 0x40000000 137CFG_UART_BASE ?= UART1_BASE 138endif 139 140ifneq (,$(filter $(PLATFORM_FLAVOR),mx6ulevk mx6ullevk)) 141CFG_DDR_SIZE ?= 0x20000000 142CFG_NS_ENTRY_ADDR ?= 0x80800000 143endif 144 145ifneq (,$(filter $(PLATFORM_FLAVOR),imx8mqevk)) 146CFG_DDR_SIZE ?= 0xc0000000 147CFG_UART_BASE ?= UART1_BASE 148endif 149 150ifneq (,$(filter $(PLATFORM_FLAVOR),imx8mmevk)) 151CFG_DDR_SIZE ?= 0x80000000 152CFG_UART_BASE ?= UART2_BASE 153endif 154 155# i.MX6 Solo/SoloX/DualLite/Dual/Quad specific config 156ifeq ($(filter y, $(CFG_MX6Q) $(CFG_MX6D) $(CFG_MX6DL) $(CFG_MX6S) \ 157 $(CFG_MX6SX)), y) 158include core/arch/arm/cpu/cortex-a9.mk 159 160$(call force,CFG_PL310,y) 161 162CFG_PL310_LOCKED ?= y 163CFG_ENABLE_SCTLR_RR ?= y 164endif 165 166ifeq ($(filter y, $(CFG_MX6Q) $(CFG_MX6D) $(CFG_MX6DL) $(CFG_MX6S)), y) 167CFG_DRAM_BASE ?= 0x10000000 168endif 169 170ifneq (,$(filter y, $(CFG_MX6UL) $(CFG_MX6ULL) $(CFG_MX6SX))) 171CFG_DRAM_BASE ?= 0x80000000 172endif 173 174ifeq ($(filter y, $(CFG_MX7)), y) 175CFG_INIT_CNTVOFF ?= y 176CFG_DRAM_BASE ?= 0x80000000 177endif 178 179ifneq (,$(filter y, $(CFG_MX6) $(CFG_MX7))) 180$(call force,CFG_GENERIC_BOOT,y) 181$(call force,CFG_GIC,y) 182$(call force,CFG_IMX_UART,y) 183$(call force,CFG_PM_STUBS,y) 184$(call force,CFG_WITH_SOFTWARE_PRNG,y) 185 186CFG_BOOT_SYNC_CPU ?= n 187CFG_BOOT_SECONDARY_REQUEST ?= y 188CFG_DT ?= y 189CFG_PAGEABLE_ADDR ?= 0 190CFG_PSCI_ARM32 ?= y 191CFG_SECURE_TIME_SOURCE_REE ?= y 192CFG_UART_BASE ?= UART1_BASE 193 194ta-targets = ta_arm32 195endif 196 197ifeq ($(filter y, $(CFG_PSCI_ARM32)), y) 198CFG_HWSUPP_MEM_PERM_WXN = n 199CFG_IMX_WDOG ?= y 200endif 201 202ifeq ($(CFG_ARM64_core),y) 203# arm-v8 platforms 204include core/arch/arm/cpu/cortex-armv8-0.mk 205$(call force,CFG_ARM_GICV3,y) 206$(call force,CFG_GENERIC_BOOT,y) 207$(call force,CFG_GIC,y) 208$(call force,CFG_WITH_LPAE,y) 209$(call force,CFG_WITH_ARM_TRUSTED_FW,y) 210$(call force,CFG_SECURE_TIME_SOURCE_CNTPCT,y) 211 212CFG_CRYPTO_WITH_CE ?= y 213CFG_PM_STUBS ?= y 214 215ta-targets = ta_arm64 216endif 217 218CFG_TZDRAM_START ?= ($(CFG_DRAM_BASE) - 0x02000000 + $(CFG_DDR_SIZE)) 219CFG_TZDRAM_SIZE ?= 0x01e00000 220CFG_SHMEM_START ?= ($(CFG_TZDRAM_START) + $(CFG_TZDRAM_SIZE)) 221CFG_SHMEM_SIZE ?= 0x00200000 222 223CFG_CRYPTO_SIZE_OPTIMIZATION ?= n 224CFG_WITH_STACK_CANARIES ?= y 225CFG_MMAP_REGIONS ?= 24 226