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) EVM
14 ifeq ($(PLATFORM),tda2xx-evm)
15 SOC = tda2xx
16 PLATFORM_XDC = "ti.platforms.evmDRA7XX"
17 endif
18 # am572x
19 ifeq ($(PLATFORM),am572x-evm)
20 SOC = am572x
21 PLATFORM_XDC = "ti.platforms.evmAM572X"
22 endif
24 ifeq ($(PLATFORM),am571x-evm)
25 SOC = am571x
26 PLATFORM_XDC = "ti.platforms.evmDRA7XX"
27 endif
29 # tda3xx (ADAS low)
30 ifeq ($(PLATFORM),tda3xx-evm)
31 SOC = tda3xx
32 PLATFORM_XDC = "ti.platforms.evmTDA3XX"
33 endif
35 # dra72x (j6Eco)
36 ifeq ($(PLATFORM),dra72x-evm)
37 SOC = dra72x
38 PLATFORM_XDC = "ti.platforms.evmDRA7XX"
39 endif
41 # tda2ex (j6Eco)
42 ifeq ($(PLATFORM),tda2ex-evm)
43 SOC = dra72x
44 PLATFORM_XDC = "ti.platforms.evmDRA7XX"
45 endif
47 # am335x
48 ifeq ($(PLATFORM),am335x-evm)
49 SOC = am335x
50 PLATFORM_XDC = "ti.platforms.evmAM3359"
51 endif
53 # am437x
54 ifeq ($(PLATFORM),am437x-evm)
55 SOC = am437x
56 PLATFORM_XDC = "ti.platforms.evmAM437X"
57 endif
59 # ti816x (Netra) catalog EVM
60 ifeq ($(PLATFORM),ti816x-evm)
61 SOC = ti816x
62 PLATFORM_XDC = "ti.platforms.evmTI816X"
63 endif
65 # ti816x (Netra) Simulator
66 ifeq ($(PLATFORM),ti816x-sim)
67 SOC = ti816x
68 ifeq ($(CORE),c6xdsp)
69 PLATFORM_XDC = "ti.platforms.simDM8168"
70 endif
71 endif
73 # ti814x (Centaurus) Catalog EVM
74 ifeq ($(PLATFORM),ti814x-evm)
75 SOC = ti814x
76 PLATFORM_XDC = "ti.platforms.evmTI814X"
77 endif
79 # c6a811x (J5Eco) Catalog EVM
80 ifeq ($(PLATFORM),c6a811x-evm)
81 SOC = c6a811x
82 PLATFORM_XDC = "ti.platforms.evmTI811X"
83 endif
85 # c6472 (Tomahawk) EVM
86 ifeq ($(PLATFORM),c6472-evm)
87 SOC = c6472
88 PLATFORM_XDC = "ti.platforms.evm6472"
89 endif
91 # tci6486 (Tomahawk) EVM
92 ifeq ($(PLATFORM),tci6486-evm)
93 SOC = c6472
94 PLATFORM_XDC = "ti.platforms.evmTCI6486"
95 endif
97 # tci6608 (Shannon) Simulator
98 ifeq ($(PLATFORM),tci6608-sim)
99 SOC = c6608
100 PLATFORM_XDC = "ti.platforms.simTCI6608"
101 endif
103 # tci6616 (Nyquist) Simulator
104 ifeq ($(PLATFORM),tci6616-sim)
105 SOC = c6616
106 PLATFORM_XDC = "ti.platforms.simTCI6616"
107 endif
109 # tci6614 (Appleton) Simulator
110 ifeq ($(PLATFORM),tci6614-sim)
111 SOC = tci6614
112 PLATFORM_XDC = "ti.platforms.simTCI6614"
113 endif
115 # c6657 (Gauss) Simulator
116 ifeq ($(PLATFORM),c6657-sim)
117 SOC = c6657
118 PLATFORM_XDC = "ti.platforms.simC6657"
119 endif
121 # tci6638k2k (Kepler2) Simulator
122 ifeq ($(PLATFORM),tci6638k2k-sim)
123 SOC = tci6638k2k
124 PLATFORM_XDC = "ti.platforms.simKepler"
125 endif
127 # c6670 (Nyquist) EVM
128 ifeq ($(PLATFORM),c6670-evm)
129 SOC = c6670
130 PLATFORM_XDC = "ti.platforms.evm6670"
131 endif
133 # c6678 (Shannon) EVM
134 ifeq ($(PLATFORM),c6678-evm)
135 SOC = c6678
136 PLATFORM_XDC = "ti.platforms.evm6678"
137 endif
139 # tci6614 (Appleton) EVM
140 ifeq ($(PLATFORM),tci6614-evm)
141 SOC = tci6614
142 PLATFORM_XDC = "ti.platforms.evmTCI6614"
143 endif
145 # c6657 (Gauss) EVM
146 ifeq ($(PLATFORM),c6657-evm)
147 SOC = c6657
148 PLATFORM_XDC = "ti.platforms.evm6657"
149 endif
151 # tci6638k2k (Kepler2) EVM
152 ifeq ($(PLATFORM),tci6638k2k-evm)
153 SOC = tci6638k2k
154 CFLAGS_LOCAL_a15host += -DGENERIC
155 PLATFORM_XDC = "ti.platforms.evmTCI6638K2K"
156 endif
158 # tci6630k2l EVM
159 ifeq ($(PLATFORM),tci6630k2l-evm)
160 SOC = tci6630k2l
161 CFLAGS_LOCAL_a15host += -DGENERIC
162 PLATFORM_XDC = "ti.platforms.evmTCI6630K2L"
163 endif
165 # c66ak2e EVM
166 ifeq ($(PLATFORM),c66ak2e-evm)
167 SOC = c66ak2e
168 CFLAGS_LOCAL_a15host += -DGENERIC
169 PLATFORM_XDC = "ti.platforms.evmC66AK2E"
170 endif
172 # tci6636k2h (Hawking) EVM
173 ifeq ($(PLATFORM),tci6636k2h-evm)
174 SOC = tci6636k2h
175 CFLAGS_LOCAL_a15host += -DGENERIC
176 PLATFORM_XDC = "ti.platforms.evmTCI6636K2H"
177 endif
179 # tci66ak2g02 EVM
180 ifeq ($(PLATFORM),tci66ak2g02-evm)
181 SOC = tci66ak2g02
182 CFLAGS_LOCAL_a15host += -DGENERIC
183 PLATFORM_XDC = "ti.platforms.evmTCI66AK2G02"
184 endif
186 # omapl138 (Freon) EVM
187 ifeq ($(PLATFORM),omapl138-evm)
188 SOC = omapl138
189 PLATFORM_XDC = "ti.platforms.evmOMAPL138"
190 endif
192 # c6748 (Freon) EVM
193 ifeq ($(PLATFORM),c6748-evm)
194 SOC = omapl138
195 PLATFORM_XDC = "ti.platforms.evm6748"
196 endif
198 # da830 (Primus) EVM
199 ifeq ($(PLATFORM),da830-evm)
200 SOC = omapl137
201 PLATFORM_XDC = "ti.platforms.evmDA830"
202 endif
204 # omap4 EVM
205 ifeq ($(PLATFORM),omap4-evm)
206 SOC = omap4
207 PLATFORM_XDC = "ti.platforms.sdp4430"
208 endif
210 # Generic platform
211 ifeq ($(PLATFORM),generic)
212 SOC = generic
213 PLATFORM_XDC =
214 endif
216 # Derive Target/ISA from CORE
218 # m4
219 ifeq ($(CORE),m4)
220 ISA = m4
221 endif
223 # a15host user space
224 ifeq ($(CORE),a15host)
225 ISA = a15
226 endif
228 # m3vpss
229 ifeq ($(CORE),m3vpss)
230 ISA = m3
231 endif
233 # m3video
234 ifeq ($(CORE),m3video)
235 ISA = m3
236 endif
238 # a8host
239 ifeq ($(CORE),a8host)
240 ISA = a8
241 endif
243 # arm9
244 ifeq ($(CORE),arm9)
245 ISA = arm9
246 endif
248 # c6xdsp
249 ifeq ($(CORE),c6xdsp)
250 ifeq ($(SOC),ti816x)
251 ISA = 674
252 endif
253 ifeq ($(SOC),tda2xx)
254 ISA = 66
255 endif
256 ifeq ($(SOC),tda3xx)
257 ISA = 66
258 endif
259 ifeq ($(SOC),dra72x)
260 ISA = 66
261 endif
262 ifeq ($(SOC),am572x)
263 ISA = 66
264 endif
265 ifeq ($(SOC),am571x)
266 ISA = 66
267 endif
268 ifeq ($(SOC),ti814x)
269 ISA = 674
270 endif
271 ifeq ($(SOC),c6a811x)
272 ISA = 674
273 endif
274 ifeq ($(SOC),omapl137)
275 ISA = 674
276 endif
277 ifeq ($(SOC),omapl138)
278 ISA = 674
279 endif
280 ifeq ($(SOC),c6472)
281 ISA = 64p
282 endif
283 ifeq ($(SOC),c6608)
284 ISA = 66
285 endif
286 ifeq ($(SOC),c66ak2e)
287 ISA = 66
288 endif
289 ifeq ($(SOC),c6616)
290 ISA = 66
291 endif
292 ifeq ($(SOC),tci6614)
293 ISA = 66
294 endif
295 ifeq ($(SOC),c6657)
296 ISA = 66
297 endif
298 ifeq ($(SOC),c6670)
299 ISA = 66
300 endif
301 ifeq ($(SOC),c6678)
302 ISA = 66
303 endif
304 ifeq ($(SOC),tci6638k2k)
305 ISA = 66
306 endif
307 ifeq ($(SOC),tci6630k2l)
308 ISA = 66
309 endif
310 ifeq ($(SOC),tci6636k2h)
311 ISA = 66
312 endif
313 ifeq ($(SOC),tci66ak2g02)
314 ISA = 66
315 endif
316 ifeq ($(SOC),omap4)
317 ISA = 64t
318 endif
319 endif
321 # EVE - arp32
322 ifeq ($(CORE),eve)
323 ISA = arp32
324 endif
326 # Platform and SOC is generic; use the core name same as ISA (eg: 674)
327 ifeq ($(SOC),generic)
328 ISA = $(CORE)
329 endif
331 #
332 # Derive XDC/ISA specific settings
333 #
334 ifeq ($(ISA),m4)
335 COMPILER = TMS470
336 ifeq ($(FORMAT),ELF)
337 TARGET_XDC = ti.targets.arm.elf.M4
338 FORMAT_EXT = e
339 else
340 TARGET_XDC = ti.targets.arm.M4
341 endif
343 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
344 # in the filename extension of object/library/executable files
345 ifeq ($(ENDIAN),big)
346 ENDIAN_EXT = e
347 endif
349 # Define the file extensions
350 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
351 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
352 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
353 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
354 endif
356 ifeq ($(ISA),a15)
357 TARGET_XDC = gnu.targets.arm.A15F
358 CFLAGS_LOCAL_a15host += -DGCC_BUILD
359 COMPILER = LINARO_GCC
360 FORMAT_EXT =
361 ENDIAN_EXT = fg
363 # Define the file extensions
364 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
365 OBJEXT_SO = $(OBJEXT)_so
366 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
367 LIBEXT_SO = $(LIBEXT)_so
368 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
369 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
370 endif
372 ifeq ($(ISA),m3)
373 COMPILER = TMS470
374 ifeq ($(FORMAT),ELF)
375 TARGET_XDC = ti.targets.arm.elf.M3
376 FORMAT_EXT = e
377 else
378 TARGET_XDC = ti.targets.arm.M3
379 endif
381 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
382 # in the filename extension of object/library/executable files
383 ifeq ($(ENDIAN),big)
384 ENDIAN_EXT = e
385 endif
387 # Define the file extensions
388 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
389 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
390 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
391 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
392 endif
394 ifeq ($(ISA),674)
395 COMPILER = C6000
396 ifeq ($(FORMAT),ELF)
397 TARGET_XDC = ti.targets.elf.C674
398 FORMAT_EXT = e
399 else
400 TARGET_XDC = ti.targets.C674
401 endif
403 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
404 # in the filename extension of object/library/executable files
405 ifeq ($(ENDIAN),big)
406 ENDIAN_EXT = e
407 endif
409 # Define the file extensions
410 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
411 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
412 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
413 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
414 endif
416 ifeq ($(ISA),64p)
417 COMPILER = C6000
418 ifeq ($(FORMAT),ELF)
419 ifeq ($(ENDIAN),big)
420 TARGET_XDC = ti.targets.elf.C64P_big_endian
421 else
422 TARGET_XDC = ti.targets.elf.C64P
423 endif
424 FORMAT_EXT = e
425 else
426 ifeq ($(ENDIAN),big)
427 TARGET_XDC = ti.targets.C64P_big_endian
428 else
429 TARGET_XDC = ti.targets.C64P
430 endif
431 endif
433 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
434 # in the filename extension of object/library/executable files
435 ifeq ($(ENDIAN),big)
436 ENDIAN_EXT = e
437 endif
439 # Define the file extensions
440 OBJEXT = o$(FORMAT_EXT)64P$(ENDIAN_EXT)
441 LIBEXT = a$(FORMAT_EXT)64P$(ENDIAN_EXT)
442 EXEEXT = x$(FORMAT_EXT)64P$(ENDIAN_EXT)
443 ASMEXT = s$(FORMAT_EXT)64P$(ENDIAN_EXT)
444 endif
446 ifeq ($(ISA),64t)
447 COMPILER = C6000
448 ifeq ($(FORMAT),ELF)
449 ifeq ($(ENDIAN),big)
450 TARGET_XDC = ti.targets.elf.C64T_big_endian
451 else
452 TARGET_XDC = ti.targets.elf.C64T
453 endif
454 FORMAT_EXT = e
455 else
456 ifeq ($(ENDIAN),big)
457 TARGET_XDC = ti.targets.C64T_big_endian
458 else
459 TARGET_XDC = ti.targets.C64T
460 endif
461 endif
463 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
464 # in the filename extension of object/library/executable files
465 ifeq ($(ENDIAN),big)
466 ENDIAN_EXT = e
467 endif
469 # Define the file extensions
470 OBJEXT = o$(FORMAT_EXT)64T$(ENDIAN_EXT)
471 LIBEXT = a$(FORMAT_EXT)64T$(ENDIAN_EXT)
472 EXEEXT = x$(FORMAT_EXT)64T$(ENDIAN_EXT)
473 ASMEXT = s$(FORMAT_EXT)64T$(ENDIAN_EXT)
474 endif
476 ifeq ($(ISA),66)
477 COMPILER = C6000
478 ifeq ($(FORMAT),ELF)
479 ifeq ($(ENDIAN),big)
480 TARGET_XDC = ti.targets.elf.C66_big_endian
481 else
482 TARGET_XDC = ti.targets.elf.C66
483 endif
484 FORMAT_EXT = e
485 else
486 ifeq ($(ENDIAN),big)
487 TARGET_XDC = ti.targets.C66_big_endian
488 else
489 TARGET_XDC = ti.targets.C66
490 endif
491 endif
493 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
494 # in the filename extension of object/library/executable files
495 ifeq ($(ENDIAN),big)
496 ENDIAN_EXT = e
497 endif
499 # Define the file extensions
500 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
501 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
502 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
503 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
505 endif
507 ifeq ($(ISA),a8)
508 ifeq ($(TOOLCHAIN_a8),TI)
509 TARGET_XDC = ti.targets.arm.elf.A8F
510 ifeq ($(FORMAT),ELF)
511 FORMAT_EXT = e
512 endif
513 ifeq ($(ENDIAN),big)
514 ENDIAN_EXT = ef
515 else
516 ENDIAN_EXT = f
517 endif
518 COMPILER = TMS470
519 else
520 TARGET_XDC = gnu.targets.arm.A8F
521 CFLAGS_LOCAL_a8host += -DGCC_BUILD
522 FORMAT_EXT =
523 ENDIAN_EXT = fg
524 COMPILER = LINARO_GCC
525 endif
527 # Define the file extensions
528 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
529 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
530 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
531 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
532 endif
534 ifeq ($(ISA),arm9)
535 ifeq ($(TOOLCHAIN_arm9),GCC)
536 TARGET_XDC = gnu.targets.arm.A9F
537 CFLAGS_LOCAL_arm9 += -DGCC_BUILD
538 FORMAT_EXT = a
539 ENDIAN_EXT = fg
540 COMPILER = LINARO_GCC
541 else
542 COMPILER = TMS470
543 TARGET_XDC = ti.targets.arm.elf.Arm9
544 ifeq ($(FORMAT),ELF)
545 FORMAT_EXT = e
546 endif
547 ifeq ($(ENDIAN),big)
548 ENDIAN_EXT = e
549 endif
550 endif
552 # Define the file extensions
553 OBJEXT = o$(FORMAT_EXT)9$(ENDIAN_EXT)
554 LIBEXT = a$(FORMAT_EXT)9$(ENDIAN_EXT)
555 EXEEXT = x$(FORMAT_EXT)9$(ENDIAN_EXT)
556 ASMEXT = s$(FORMAT_EXT)9$(ENDIAN_EXT)
557 endif
559 ifeq ($(ISA),arp32)
560 ifeq ($(FORMAT),ELF)
561 TARGET_XDC = ti.targets.arp32.elf.ARP32_far
562 ENDIAN_EXT = f
563 FORMAT_EXT = e
564 else
565 TARGET_XDC = ti.targets.arp32.elf.ARP32
566 endif
568 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
569 # in the filename extension of object/library/executable files
570 ifeq ($(ENDIAN),big)
571 ENDIAN_EXT = e
572 endif
574 # Define the file extensions
575 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
576 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
577 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
578 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
579 endif
581 ifeq (sim,$(findstring sim,$(PLATFORM)))
582 OMX_PLATFORM = sim
583 endif
584 export COMPILER
585 ifeq (ti816x-evm,$(findstring ti816x-evm,$(PLATFORM)))
586 # Don't know why platform define for XDC is separate for A8. TO DO.
587 ifeq ($(CORE),a8host)
588 OMX_PLATFORM = evmSi
589 else
590 OMX_PLATFORM = evmSi816X
591 endif
592 endif
594 ifeq ($(CORE),m3vpss)
595 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName: \\\"VPSS-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
596 endif
597 ifeq ($(CORE),m3video)
598 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"VIDEO-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
599 endif
600 ifeq ($(CORE),c6xdsp)
601 CFGARGS_XDC =
602 endif
603 ifeq ($(CORE),a8host)
604 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"HOST\\\", tiler: \\\"NullTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
605 endif
607 # Nothing beyond this point