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