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