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
19 # tda3xx (ADAS low)
20 ifeq ($(PLATFORM),tda3xx-evm)
21 SOC = tda3xx
22 PLATFORM_XDC = "ti.platforms.evmDRA7XX"
23 endif
25 # dra72x (j6Eco)
26 ifeq ($(PLATFORM),dra72x-evm)
27 SOC = dra72x
28 PLATFORM_XDC = "ti.platforms.evmDRA7XX"
29 endif
31 # ti816x (Netra) catalog EVM
32 ifeq ($(PLATFORM),ti816x-evm)
33 SOC = ti816x
34 PLATFORM_XDC = "ti.platforms.evmTI816X"
35 endif
37 # ti816x (Netra) Simulator
38 ifeq ($(PLATFORM),ti816x-sim)
39 SOC = ti816x
40 ifeq ($(CORE),c6xdsp)
41 PLATFORM_XDC = "ti.platforms.simDM8168"
42 endif
43 endif
45 # ti814x (Centaurus) Catalog EVM
46 ifeq ($(PLATFORM),ti814x-evm)
47 SOC = ti814x
48 PLATFORM_XDC = "ti.platforms.evmTI814X"
49 endif
51 # c6a811x (J5Eco) Catalog EVM
52 ifeq ($(PLATFORM),c6a811x-evm)
53 SOC = c6a811x
54 PLATFORM_XDC = "ti.platforms.evmTI811X"
55 endif
57 # c6472 (Tomahawk) EVM
58 ifeq ($(PLATFORM),c6472-evm)
59 SOC = c6472
60 PLATFORM_XDC = "ti.platforms.evm6472"
61 endif
63 # tci6486 (Tomahawk) EVM
64 ifeq ($(PLATFORM),tci6486-evm)
65 SOC = c6472
66 PLATFORM_XDC = "ti.platforms.evmTCI6486"
67 endif
69 # tci6608 (Shannon) Simulator
70 ifeq ($(PLATFORM),tci6608-sim)
71 SOC = c6608
72 PLATFORM_XDC = "ti.platforms.simTCI6608"
73 endif
75 # tci6616 (Nyquist) Simulator
76 ifeq ($(PLATFORM),tci6616-sim)
77 SOC = c6616
78 PLATFORM_XDC = "ti.platforms.simTCI6616"
79 endif
81 # tci6614 (Appleton) Simulator
82 ifeq ($(PLATFORM),tci6614-sim)
83 SOC = tci6614
84 PLATFORM_XDC = "ti.platforms.simTCI6614"
85 endif
87 # c6657 (Gauss) Simulator
88 ifeq ($(PLATFORM),c6657-sim)
89 SOC = c6657
90 PLATFORM_XDC = "ti.platforms.simC6657"
91 endif
93 # tci6638k2k (Kepler2) Simulator
94 ifeq ($(PLATFORM),tci6638k2k-sim)
95 SOC = tci6638k2k
96 PLATFORM_XDC = "ti.platforms.simKepler"
97 endif
99 # c6670 (Nyquist) EVM
100 ifeq ($(PLATFORM),c6670-evm)
101 SOC = c6670
102 PLATFORM_XDC = "ti.platforms.evm6670"
103 endif
105 # c6678 (Shannon) EVM
106 ifeq ($(PLATFORM),c6678-evm)
107 SOC = c6678
108 PLATFORM_XDC = "ti.platforms.evm6678"
109 endif
111 # tci6614 (Appleton) EVM
112 ifeq ($(PLATFORM),tci6614-evm)
113 SOC = tci6614
114 PLATFORM_XDC = "ti.platforms.evmTCI6614"
115 endif
117 # c6657 (Gauss) EVM
118 ifeq ($(PLATFORM),c6657-evm)
119 SOC = c6657
120 PLATFORM_XDC = "ti.platforms.evm6657"
121 endif
123 # tci6638k2k (Kepler2) EVM
124 ifeq ($(PLATFORM),tci6638k2k-evm)
125 SOC = tci6638k2k
126 CFLAGS_LOCAL_a15host += -DGENERIC
127 PLATFORM_XDC = "ti.platforms.evmTCI6638K2K"
128 endif
130 # tci6630k2l EVM
131 ifeq ($(PLATFORM),tci6630k2l-evm)
132 SOC = tci6630k2l
133 CFLAGS_LOCAL_a15host += -DGENERIC
134 PLATFORM_XDC = "ti.platforms.evmTCI6630K2L"
135 endif
137 # c66ak2e EVM
138 ifeq ($(PLATFORM),c66ak2e-evm)
139 SOC = c66ak2e
140 CFLAGS_LOCAL_a15host += -DGENERIC
141 PLATFORM_XDC = "ti.platforms.evmC66AK2E"
142 endif
144 # tci6636k2h (Hawking) EVM
145 ifeq ($(PLATFORM),tci6636k2h-evm)
146 SOC = tci6636k2h
147 CFLAGS_LOCAL_a15host += -DGENERIC
148 PLATFORM_XDC = "ti.platforms.evmTCI6636K2H"
149 endif
151 # omapl138 (Freon) EVM
152 ifeq ($(PLATFORM),omapl138-evm)
153 SOC = omapl138
154 PLATFORM_XDC = "ti.platforms.evmOMAPL138"
155 endif
157 # c6748 (Freon) EVM
158 ifeq ($(PLATFORM),c6748-evm)
159 SOC = omapl138
160 PLATFORM_XDC = "ti.platforms.evm6748"
161 endif
163 # da830 (Primus) EVM
164 ifeq ($(PLATFORM),da830-evm)
165 SOC = omapl137
166 PLATFORM_XDC = "ti.platforms.evmDA830"
167 endif
169 # omap4 EVM
170 ifeq ($(PLATFORM),omap4-evm)
171 SOC = omap4
172 PLATFORM_XDC = "ti.platforms.sdp4430"
173 endif
175 # Generic platform
176 ifeq ($(PLATFORM),generic)
177 SOC = generic
178 PLATFORM_XDC =
179 endif
181 # Derive Target/ISA from CORE
183 # m4
184 ifeq ($(CORE),m4)
185 ISA = m4
186 endif
188 # a15host
189 ifeq ($(CORE),a15host)
190 ISA = a15
191 endif
193 # m3vpss
194 ifeq ($(CORE),m3vpss)
195 ISA = m3
196 endif
198 # m3video
199 ifeq ($(CORE),m3video)
200 ISA = m3
201 endif
203 # a8host
204 ifeq ($(CORE),a8host)
205 ISA = a8
206 endif
208 # arm9
209 ifeq ($(CORE),arm9)
210 ISA = arm9
211 endif
213 # c6xdsp
214 ifeq ($(CORE),c6xdsp)
215 ifeq ($(SOC),ti816x)
216 ISA = 674
217 endif
218 ifeq ($(SOC),tda2xx)
219 ISA = 66
220 endif
221 ifeq ($(SOC),tda3xx)
222 ISA = 66
223 endif
224 ifeq ($(SOC),dra72x)
225 ISA = 66
226 endif
227 ifeq ($(SOC),ti814x)
228 ISA = 674
229 endif
230 ifeq ($(SOC),c6a811x)
231 ISA = 674
232 endif
233 ifeq ($(SOC),omapl137)
234 ISA = 674
235 endif
236 ifeq ($(SOC),omapl138)
237 ISA = 674
238 endif
239 ifeq ($(SOC),c6472)
240 ISA = 64p
241 endif
242 ifeq ($(SOC),c6608)
243 ISA = 66
244 endif
245 ifeq ($(SOC),c66ak2e)
246 ISA = 66
247 endif
248 ifeq ($(SOC),c6616)
249 ISA = 66
250 endif
251 ifeq ($(SOC),tci6614)
252 ISA = 66
253 endif
254 ifeq ($(SOC),c6657)
255 ISA = 66
256 endif
257 ifeq ($(SOC),c6670)
258 ISA = 66
259 endif
260 ifeq ($(SOC),c6678)
261 ISA = 66
262 endif
263 ifeq ($(SOC),tci6638k2k)
264 ISA = 66
265 endif
266 ifeq ($(SOC),tci6630k2l)
267 ISA = 66
268 endif
269 ifeq ($(SOC),tci6636k2h)
270 ISA = 66
271 endif
272 ifeq ($(SOC),omap4)
273 ISA = 64t
274 endif
275 endif
277 # EVE - arp32
278 ifeq ($(CORE),eve)
279 ISA = arp32
280 endif
282 # Platform and SOC is generic; use the core name same as ISA (eg: 674)
283 ifeq ($(SOC),generic)
284 ISA = $(CORE)
285 endif
287 #
288 # Derive XDC/ISA specific settings
289 #
290 ifeq ($(ISA),m4)
291 COMPILER = TMS470
292 ifeq ($(FORMAT),ELF)
293 TARGET_XDC = ti.targets.arm.elf.M4
294 FORMAT_EXT = e
295 else
296 TARGET_XDC = ti.targets.arm.M4
297 endif
299 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
300 # in the filename extension of object/library/executable files
301 ifeq ($(ENDIAN),big)
302 ENDIAN_EXT = e
303 endif
305 # Define the file extensions
306 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
307 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
308 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
309 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
310 endif
312 ifeq ($(ISA),a15)
313 TARGET_XDC = gnu.targets.arm.A15F
314 CFLAGS_LOCAL_a15host += -DGCC_BUILD
315 COMPILER = LINARO_GCC
316 FORMAT_EXT =
317 ENDIAN_EXT = fg
319 # Define the file extensions
320 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
321 OBJEXT_SO = $(OBJEXT)_so
322 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
323 LIBEXT_SO = $(LIBEXT)_so
324 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
325 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
326 endif
328 ifeq ($(ISA),m3)
329 COMPILER = TMS470
330 ifeq ($(FORMAT),ELF)
331 TARGET_XDC = ti.targets.arm.elf.M3
332 FORMAT_EXT = e
333 else
334 TARGET_XDC = ti.targets.arm.M3
335 endif
337 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
338 # in the filename extension of object/library/executable files
339 ifeq ($(ENDIAN),big)
340 ENDIAN_EXT = e
341 endif
343 # Define the file extensions
344 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
345 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
346 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
347 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
348 endif
350 ifeq ($(ISA),674)
351 COMPILER = C6000
352 ifeq ($(FORMAT),ELF)
353 TARGET_XDC = ti.targets.elf.C674
354 FORMAT_EXT = e
355 else
356 TARGET_XDC = ti.targets.C674
357 endif
359 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
360 # in the filename extension of object/library/executable files
361 ifeq ($(ENDIAN),big)
362 ENDIAN_EXT = e
363 endif
365 # Define the file extensions
366 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
367 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
368 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
369 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
370 endif
372 ifeq ($(ISA),64p)
373 COMPILER = C6000
374 ifeq ($(FORMAT),ELF)
375 ifeq ($(ENDIAN),big)
376 TARGET_XDC = ti.targets.elf.C64P_big_endian
377 else
378 TARGET_XDC = ti.targets.elf.C64P
379 endif
380 FORMAT_EXT = e
381 else
382 ifeq ($(ENDIAN),big)
383 TARGET_XDC = ti.targets.C64P_big_endian
384 else
385 TARGET_XDC = ti.targets.C64P
386 endif
387 endif
389 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
390 # in the filename extension of object/library/executable files
391 ifeq ($(ENDIAN),big)
392 ENDIAN_EXT = e
393 endif
395 # Define the file extensions
396 OBJEXT = o$(FORMAT_EXT)64P$(ENDIAN_EXT)
397 LIBEXT = a$(FORMAT_EXT)64P$(ENDIAN_EXT)
398 EXEEXT = x$(FORMAT_EXT)64P$(ENDIAN_EXT)
399 ASMEXT = s$(FORMAT_EXT)64P$(ENDIAN_EXT)
400 endif
402 ifeq ($(ISA),64t)
403 COMPILER = C6000
404 ifeq ($(FORMAT),ELF)
405 ifeq ($(ENDIAN),big)
406 TARGET_XDC = ti.targets.elf.C64T_big_endian
407 else
408 TARGET_XDC = ti.targets.elf.C64T
409 endif
410 FORMAT_EXT = e
411 else
412 ifeq ($(ENDIAN),big)
413 TARGET_XDC = ti.targets.C64T_big_endian
414 else
415 TARGET_XDC = ti.targets.C64T
416 endif
417 endif
419 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
420 # in the filename extension of object/library/executable files
421 ifeq ($(ENDIAN),big)
422 ENDIAN_EXT = e
423 endif
425 # Define the file extensions
426 OBJEXT = o$(FORMAT_EXT)64T$(ENDIAN_EXT)
427 LIBEXT = a$(FORMAT_EXT)64T$(ENDIAN_EXT)
428 EXEEXT = x$(FORMAT_EXT)64T$(ENDIAN_EXT)
429 ASMEXT = s$(FORMAT_EXT)64T$(ENDIAN_EXT)
430 endif
432 ifeq ($(ISA),66)
433 COMPILER = C6000
434 ifeq ($(FORMAT),ELF)
435 ifeq ($(ENDIAN),big)
436 TARGET_XDC = ti.targets.elf.C66_big_endian
437 else
438 TARGET_XDC = ti.targets.elf.C66
439 endif
440 FORMAT_EXT = e
441 else
442 ifeq ($(ENDIAN),big)
443 TARGET_XDC = ti.targets.C66_big_endian
444 else
445 TARGET_XDC = ti.targets.C66
446 endif
447 endif
449 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
450 # in the filename extension of object/library/executable files
451 ifeq ($(ENDIAN),big)
452 ENDIAN_EXT = e
453 endif
455 # Define the file extensions
456 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
457 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
458 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
459 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
461 endif
463 ifeq ($(ISA),a8)
464 ifeq ($(TOOLCHAIN_a8),TI)
465 TARGET_XDC = ti.targets.arm.elf.A8F
466 ifeq ($(FORMAT),ELF)
467 FORMAT_EXT = e
468 endif
469 ifeq ($(ENDIAN),big)
470 ENDIAN_EXT = ef
471 else
472 ENDIAN_EXT = f
473 endif
474 COMPILER = TMS470
475 else
476 TARGET_XDC = gnu.targets.arm.A8F
477 CFLAGS_LOCAL_a8host += -DGCC_BUILD
478 FORMAT_EXT =
479 ENDIAN_EXT = fg
480 COMPILER = LINARO_GCC
481 endif
483 # Define the file extensions
484 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
485 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
486 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
487 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
488 endif
490 ifeq ($(ISA),arm9)
491 COMPILER = TMS470
492 TARGET_XDC = ti.targets.arm.elf.Arm9
493 ifeq ($(FORMAT),ELF)
494 FORMAT_EXT = e
495 endif
496 ifeq ($(ENDIAN),big)
497 ENDIAN_EXT = e
498 endif
500 # Define the file extensions
501 OBJEXT = o$(FORMAT_EXT)9$(ENDIAN_EXT)
502 LIBEXT = a$(FORMAT_EXT)9$(ENDIAN_EXT)
503 EXEEXT = x$(FORMAT_EXT)9$(ENDIAN_EXT)
504 ASMEXT = s$(FORMAT_EXT)9$(ENDIAN_EXT)
505 endif
507 ifeq ($(ISA),arp32)
508 ifeq ($(FORMAT),ELF)
509 TARGET_XDC = ti.targets.arp32.elf.ARP32_far
510 ENDIAN_EXT = f
511 FORMAT_EXT = e
512 else
513 TARGET_XDC = ti.targets.arp32.elf.ARP32
514 endif
516 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
517 # in the filename extension of object/library/executable files
518 ifeq ($(ENDIAN),big)
519 ENDIAN_EXT = e
520 endif
522 # Define the file extensions
523 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
524 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
525 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
526 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
527 endif
529 ifeq (sim,$(findstring sim,$(PLATFORM)))
530 OMX_PLATFORM = sim
531 endif
532 export COMPILER
533 ifeq (ti816x-evm,$(findstring ti816x-evm,$(PLATFORM)))
534 # Don't know why platform define for XDC is separate for A8. TO DO.
535 ifeq ($(CORE),a8host)
536 OMX_PLATFORM = evmSi
537 else
538 OMX_PLATFORM = evmSi816X
539 endif
540 endif
542 ifeq ($(CORE),m3vpss)
543 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName: \\\"VPSS-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
544 endif
545 ifeq ($(CORE),m3video)
546 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"VIDEO-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
547 endif
548 ifeq ($(CORE),c6xdsp)
549 CFGARGS_XDC =
550 endif
551 ifeq ($(CORE),a8host)
552 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"HOST\\\", tiler: \\\"NullTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
553 endif
555 # Nothing beyond this point