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