xref: /optee_os/core/arch/arm/plat-imx/conf.mk (revision f5df167c2ffb2b26de30bebe6e7a0674924b4de7)
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