1 # Filename: platforms.mk
2 #
3 # Platforms make file - Platform/SoC/targets are defined/derived in this file
4 #
5 # This file needs to change when:
6 # 1. a new platform/SoC is added, which also might have its own cores/ISAs
7 #
9 #
10 # Derive SOC from PLATFORM
11 #
13 # tda2xx (Vayu) Simulator
14 ifeq ($(PLATFORM),tda2xx-evm)
15 SOC = tda2xx
16 PLATFORM_XDC = "ti.platforms.simVayu"
17 endif
19 # ti816x (Netra) catalog EVM
20 ifeq ($(PLATFORM),ti816x-evm)
21 SOC = ti816x
22 PLATFORM_XDC = "ti.platforms.evmTI816X"
23 endif
25 # ti816x (Netra) Simulator
26 ifeq ($(PLATFORM),ti816x-sim)
27 SOC = ti816x
28 ifeq ($(CORE),c6xdsp)
29 PLATFORM_XDC = "ti.platforms.simDM8168"
30 endif
31 endif
33 # ti814x (Centaurus) Catalog EVM
34 ifeq ($(PLATFORM),ti814x-evm)
35 SOC = ti814x
36 PLATFORM_XDC = "ti.platforms.evmTI814X"
37 endif
39 # c6a811x (J5Eco) Catalog EVM
40 ifeq ($(PLATFORM),c6a811x-evm)
41 SOC = c6a811x
42 PLATFORM_XDC = "ti.platforms.evmTI811X"
43 endif
45 # c6472 (Tomahawk) EVM
46 ifeq ($(PLATFORM),c6472-evm)
47 SOC = c6472
48 PLATFORM_XDC = "ti.platforms.evm6472"
49 endif
51 # tci6486 (Tomahawk) EVM
52 ifeq ($(PLATFORM),tci6486-evm)
53 SOC = c6472
54 PLATFORM_XDC = "ti.platforms.evmTCI6486"
55 endif
57 # tci6608 (Shannon) Simulator
58 ifeq ($(PLATFORM),tci6608-sim)
59 SOC = c6608
60 PLATFORM_XDC = "ti.platforms.simTCI6608"
61 endif
63 # tci6616 (Nyquist) Simulator
64 ifeq ($(PLATFORM),tci6616-sim)
65 SOC = c6616
66 PLATFORM_XDC = "ti.platforms.simTCI6616"
67 endif
69 # tci6614 (Appleton) Simulator
70 ifeq ($(PLATFORM),tci6614-sim)
71 SOC = tci6614
72 PLATFORM_XDC = "ti.platforms.simTCI6614"
73 endif
75 # c6657 (Gauss) Simulator
76 ifeq ($(PLATFORM),c6657-sim)
77 SOC = c6657
78 PLATFORM_XDC = "ti.platforms.simC6657"
79 endif
81 # tci6638k2k (Kepler2) Simulator
82 ifeq ($(PLATFORM),tci6638k2k-sim)
83 SOC = tci6638k2k
84 PLATFORM_XDC = "ti.platforms.simKepler"
85 endif
87 # c6670 (Nyquist) EVM
88 ifeq ($(PLATFORM),c6670-evm)
89 SOC = c6670
90 PLATFORM_XDC = "ti.platforms.evm6670"
91 endif
93 # c6678 (Shannon) EVM
94 ifeq ($(PLATFORM),c6678-evm)
95 SOC = c6678
96 PLATFORM_XDC = "ti.platforms.evm6678"
97 endif
99 # tci6614 (Appleton) EVM
100 ifeq ($(PLATFORM),tci6614-evm)
101 SOC = tci6614
102 PLATFORM_XDC = "ti.platforms.evmTCI6614"
103 endif
105 # c6657 (Gauss) EVM
106 ifeq ($(PLATFORM),c6657-evm)
107 SOC = c6657
108 PLATFORM_XDC = "ti.platforms.evm6657"
109 endif
111 # tci6638k2k (Kepler2) EVM
112 ifeq ($(PLATFORM),tci6638k2k-evm)
113 SOC = tci6638k2k
114 PLATFORM_XDC = "ti.platforms.evmTCI6638K2K"
115 endif
117 # omapl138 (Freon) EVM
118 ifeq ($(PLATFORM),omapl138-evm)
119 SOC = omapl138
120 PLATFORM_XDC = "ti.platforms.evmOMAPL138"
121 endif
123 # c6748 (Freon) EVM
124 ifeq ($(PLATFORM),c6748-evm)
125 SOC = omapl138
126 PLATFORM_XDC = "ti.platforms.evm6748"
127 endif
129 # da830 (Primus) EVM
130 ifeq ($(PLATFORM),da830-evm)
131 SOC = omapl137
132 PLATFORM_XDC = "ti.platforms.evmDA830"
133 endif
135 # omap4 EVM
136 ifeq ($(PLATFORM),omap4-evm)
137 SOC = omap4
138 PLATFORM_XDC = "ti.platforms.sdp4430"
139 endif
141 # Generic platform
142 ifeq ($(PLATFORM),generic)
143 SOC = generic
144 PLATFORM_XDC =
145 endif
147 # Derive Target/ISA from CORE
149 # m4
150 ifeq ($(CORE),m4)
151 ISA = m4
152 endif
154 # a15host
155 ifeq ($(CORE),a15host)
156 ISA = a15
157 endif
159 # m3vpss
160 ifeq ($(CORE),m3vpss)
161 ISA = m3
162 endif
164 # m3video
165 ifeq ($(CORE),m3video)
166 ISA = m3
167 endif
169 # a8host
170 ifeq ($(CORE),a8host)
171 ISA = a8
172 endif
174 # arm9
175 ifeq ($(CORE),arm9)
176 ISA = arm9
177 endif
179 # c6xdsp
180 ifeq ($(CORE),c6xdsp)
181 ifeq ($(SOC),ti816x)
182 ISA = 674
183 endif
184 ifeq ($(SOC),tda2xx)
185 ISA = 66
186 endif
187 ifeq ($(SOC),ti814x)
188 ISA = 674
189 endif
190 ifeq ($(SOC),c6a811x)
191 ISA = 674
192 endif
193 ifeq ($(SOC),omapl137)
194 ISA = 674
195 endif
196 ifeq ($(SOC),omapl138)
197 ISA = 674
198 endif
199 ifeq ($(SOC),c6472)
200 ISA = 64p
201 endif
202 ifeq ($(SOC),c6608)
203 ISA = 66
204 endif
205 ifeq ($(SOC),c6616)
206 ISA = 66
207 endif
208 ifeq ($(SOC),tci6614)
209 ISA = 66
210 endif
211 ifeq ($(SOC),c6657)
212 ISA = 66
213 endif
214 ifeq ($(SOC),c6670)
215 ISA = 66
216 endif
217 ifeq ($(SOC),c6678)
218 ISA = 66
219 endif
220 ifeq ($(SOC),tci6638k2k)
221 ISA = 66
222 endif
223 ifeq ($(SOC),omap4)
224 ISA = 64t
225 endif
226 endif
228 # Platform and SOC is generic; use the core name same as ISA (eg: 674)
229 ifeq ($(SOC),generic)
230 ISA = $(CORE)
231 endif
233 #
234 # Derive XDC/ISA specific settings
235 #
237 ifeq ($(ISA),m4)
238 ifeq ($(FORMAT),ELF)
239 TARGET_XDC = ti.targets.arm.elf.M4
240 FORMAT_EXT = e
241 else
242 TARGET_XDC = ti.targets.arm.M4
243 endif
245 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
246 # in the filename extension of object/library/executable files
247 ifeq ($(ENDIAN),big)
248 ENDIAN_EXT = e
249 endif
251 # Define the file extensions
252 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
253 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
254 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
255 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
256 endif
258 ifeq ($(ISA),a15)
259 TARGET_XDC = gnu.targets.arm.A15F
261 ifeq ($(FORMAT),ELF)
262 FORMAT_EXT = e
263 endif
264 ifeq ($(ENDIAN),big)
265 ENDIAN_EXT = e
266 endif
268 # Define the file extensions
269 OBJEXT = o$(FORMAT_EXT)a15f$(ENDIAN_EXT)
270 LIBEXT = a$(FORMAT_EXT)a15f$(ENDIAN_EXT)
271 EXEEXT = x$(FORMAT_EXT)a15f$(ENDIAN_EXT)
272 ASMEXT = s$(FORMAT_EXT)a15f$(ENDIAN_EXT)
273 endif
275 ifeq ($(ISA),m3)
276 ifeq ($(FORMAT),ELF)
277 TARGET_XDC = ti.targets.arm.elf.M3
278 FORMAT_EXT = e
279 else
280 TARGET_XDC = ti.targets.arm.M3
281 endif
283 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
284 # in the filename extension of object/library/executable files
285 ifeq ($(ENDIAN),big)
286 ENDIAN_EXT = e
287 endif
289 # Define the file extensions
290 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
291 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
292 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
293 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
294 endif
296 ifeq ($(ISA),674)
297 ifeq ($(FORMAT),ELF)
298 TARGET_XDC = ti.targets.elf.C674
299 FORMAT_EXT = e
300 else
301 TARGET_XDC = ti.targets.C674
302 endif
304 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
305 # in the filename extension of object/library/executable files
306 ifeq ($(ENDIAN),big)
307 ENDIAN_EXT = e
308 endif
310 # Define the file extensions
311 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
312 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
313 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
314 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
315 endif
317 ifeq ($(ISA),64p)
318 ifeq ($(FORMAT),ELF)
319 ifeq ($(ENDIAN),big)
320 TARGET_XDC = ti.targets.elf.C64P_big_endian
321 else
322 TARGET_XDC = ti.targets.elf.C64P
323 endif
324 FORMAT_EXT = e
325 else
326 ifeq ($(ENDIAN),big)
327 TARGET_XDC = ti.targets.C64P_big_endian
328 else
329 TARGET_XDC = ti.targets.C64P
330 endif
331 endif
333 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
334 # in the filename extension of object/library/executable files
335 ifeq ($(ENDIAN),big)
336 ENDIAN_EXT = e
337 endif
339 # Define the file extensions
340 OBJEXT = o$(FORMAT_EXT)64P$(ENDIAN_EXT)
341 LIBEXT = a$(FORMAT_EXT)64P$(ENDIAN_EXT)
342 EXEEXT = x$(FORMAT_EXT)64P$(ENDIAN_EXT)
343 ASMEXT = s$(FORMAT_EXT)64P$(ENDIAN_EXT)
344 endif
346 ifeq ($(ISA),64t)
347 ifeq ($(FORMAT),ELF)
348 ifeq ($(ENDIAN),big)
349 TARGET_XDC = ti.targets.elf.C64T_big_endian
350 else
351 TARGET_XDC = ti.targets.elf.C64T
352 endif
353 FORMAT_EXT = e
354 else
355 ifeq ($(ENDIAN),big)
356 TARGET_XDC = ti.targets.C64T_big_endian
357 else
358 TARGET_XDC = ti.targets.C64T
359 endif
360 endif
362 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
363 # in the filename extension of object/library/executable files
364 ifeq ($(ENDIAN),big)
365 ENDIAN_EXT = e
366 endif
368 # Define the file extensions
369 OBJEXT = o$(FORMAT_EXT)64T$(ENDIAN_EXT)
370 LIBEXT = a$(FORMAT_EXT)64T$(ENDIAN_EXT)
371 EXEEXT = x$(FORMAT_EXT)64T$(ENDIAN_EXT)
372 ASMEXT = s$(FORMAT_EXT)64T$(ENDIAN_EXT)
373 endif
375 ifeq ($(ISA),66)
376 ifeq ($(FORMAT),ELF)
377 ifeq ($(ENDIAN),big)
378 TARGET_XDC = ti.targets.elf.C66_big_endian
379 else
380 TARGET_XDC = ti.targets.elf.C66
381 endif
382 FORMAT_EXT = e
383 else
384 ifeq ($(ENDIAN),big)
385 TARGET_XDC = ti.targets.C66_big_endian
386 else
387 TARGET_XDC = ti.targets.C66
388 endif
389 endif
391 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
392 # in the filename extension of object/library/executable files
393 ifeq ($(ENDIAN),big)
394 ENDIAN_EXT = e
395 endif
397 # Define the file extensions
398 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
399 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
400 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
401 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
403 endif
405 ifeq ($(ISA),a8)
406 ifeq ($(TOOLCHAIN_a8),TI)
407 TARGET_XDC = ti.targets.arm.elf.A8F
408 else
409 TARGET_XDC = gnu.targets.arm.GCArmv5T
410 PLATFORM_XDC = "host.platforms.arm"
411 endif
412 ifeq ($(FORMAT),ELF)
413 FORMAT_EXT = e
414 endif
415 ifeq ($(ENDIAN),big)
416 ENDIAN_EXT = e
417 endif
419 # Define the file extensions
420 OBJEXT = o$(FORMAT_EXT)a8f$(ENDIAN_EXT)
421 LIBEXT = a$(FORMAT_EXT)a8f$(ENDIAN_EXT)
422 EXEEXT = x$(FORMAT_EXT)a8f$(ENDIAN_EXT)
423 ASMEXT = s$(FORMAT_EXT)a8f$(ENDIAN_EXT)
424 endif
426 ifeq ($(ISA),arm9)
427 TARGET_XDC = ti.targets.arm.elf.Arm9
428 ifeq ($(FORMAT),ELF)
429 FORMAT_EXT = e
430 endif
431 ifeq ($(ENDIAN),big)
432 ENDIAN_EXT = e
433 endif
435 # Define the file extensions
436 OBJEXT = o$(FORMAT_EXT)9$(ENDIAN_EXT)
437 LIBEXT = a$(FORMAT_EXT)9$(ENDIAN_EXT)
438 EXEEXT = x$(FORMAT_EXT)9$(ENDIAN_EXT)
439 ASMEXT = s$(FORMAT_EXT)9$(ENDIAN_EXT)
440 endif
442 ifeq (sim,$(findstring sim,$(PLATFORM)))
443 OMX_PLATFORM = sim
444 endif
446 ifeq (ti816x-evm,$(findstring ti816x-evm,$(PLATFORM)))
447 # Don't know why platform define for XDC is separate for A8. TO DO.
448 ifeq ($(CORE),a8host)
449 OMX_PLATFORM = evmSi
450 else
451 OMX_PLATFORM = evmSi816X
452 endif
453 endif
455 ifeq ($(CORE),m3vpss)
456 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName: \\\"VPSS-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
457 endif
458 ifeq ($(CORE),m3video)
459 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"VIDEO-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
460 endif
461 ifeq ($(CORE),c6xdsp)
462 CFGARGS_XDC =
463 endif
464 ifeq ($(CORE),a8host)
465 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"HOST\\\", tiler: \\\"NullTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
466 endif
468 # Nothing beyond this point