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