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