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 # tci6636k2h (Hawking) EVM
118 ifeq ($(PLATFORM),tci6636k2h-evm)
119 SOC = tci6636k2h
120 PLATFORM_XDC = "ti.platforms.evmTCI6636K2H"
121 endif
123 # omapl138 (Freon) EVM
124 ifeq ($(PLATFORM),omapl138-evm)
125 SOC = omapl138
126 PLATFORM_XDC = "ti.platforms.evmOMAPL138"
127 endif
129 # c6748 (Freon) EVM
130 ifeq ($(PLATFORM),c6748-evm)
131 SOC = omapl138
132 PLATFORM_XDC = "ti.platforms.evm6748"
133 endif
135 # da830 (Primus) EVM
136 ifeq ($(PLATFORM),da830-evm)
137 SOC = omapl137
138 PLATFORM_XDC = "ti.platforms.evmDA830"
139 endif
141 # omap4 EVM
142 ifeq ($(PLATFORM),omap4-evm)
143 SOC = omap4
144 PLATFORM_XDC = "ti.platforms.sdp4430"
145 endif
147 # Generic platform
148 ifeq ($(PLATFORM),generic)
149 SOC = generic
150 PLATFORM_XDC =
151 endif
153 # Derive Target/ISA from CORE
155 # m4
156 ifeq ($(CORE),m4)
157 ISA = m4
158 endif
160 # a15host
161 ifeq ($(CORE),a15host)
162 ISA = a15
163 endif
165 # m3vpss
166 ifeq ($(CORE),m3vpss)
167 ISA = m3
168 endif
170 # m3video
171 ifeq ($(CORE),m3video)
172 ISA = m3
173 endif
175 # a8host
176 ifeq ($(CORE),a8host)
177 ISA = a8
178 endif
180 # arm9
181 ifeq ($(CORE),arm9)
182 ISA = arm9
183 endif
185 # c6xdsp
186 ifeq ($(CORE),c6xdsp)
187 ifeq ($(SOC),ti816x)
188 ISA = 674
189 endif
190 ifeq ($(SOC),tda2xx)
191 ISA = 66
192 endif
193 ifeq ($(SOC),ti814x)
194 ISA = 674
195 endif
196 ifeq ($(SOC),c6a811x)
197 ISA = 674
198 endif
199 ifeq ($(SOC),omapl137)
200 ISA = 674
201 endif
202 ifeq ($(SOC),omapl138)
203 ISA = 674
204 endif
205 ifeq ($(SOC),c6472)
206 ISA = 64p
207 endif
208 ifeq ($(SOC),c6608)
209 ISA = 66
210 endif
211 ifeq ($(SOC),c6616)
212 ISA = 66
213 endif
214 ifeq ($(SOC),tci6614)
215 ISA = 66
216 endif
217 ifeq ($(SOC),c6657)
218 ISA = 66
219 endif
220 ifeq ($(SOC),c6670)
221 ISA = 66
222 endif
223 ifeq ($(SOC),c6678)
224 ISA = 66
225 endif
226 ifeq ($(SOC),tci6638k2k)
227 ISA = 66
228 endif
229 ifeq ($(SOC),tci6636k2h)
230 ISA = 66
231 endif
232 ifeq ($(SOC),omap4)
233 ISA = 64t
234 endif
235 endif
237 # Platform and SOC is generic; use the core name same as ISA (eg: 674)
238 ifeq ($(SOC),generic)
239 ISA = $(CORE)
240 endif
242 #
243 # Derive XDC/ISA specific settings
244 #
245 ifeq ($(ISA),m4)
246 COMPILER = TMS470
247 ifeq ($(FORMAT),ELF)
248 TARGET_XDC = ti.targets.arm.elf.M4
249 FORMAT_EXT = e
250 else
251 TARGET_XDC = ti.targets.arm.M4
252 endif
254 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
255 # in the filename extension of object/library/executable files
256 ifeq ($(ENDIAN),big)
257 ENDIAN_EXT = e
258 endif
260 # Define the file extensions
261 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
262 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
263 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
264 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
265 endif
267 ifeq ($(ISA),a15)
268 TARGET_XDC = gnu.targets.arm.A15F
269 CFLAGS_LOCAL_a15host += -DGCC_BUILD
270 COMPILER = LINARO_GCC
271 FORMAT_EXT =
272 ENDIAN_EXT = fg
274 # Define the file extensions
275 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
276 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
277 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
278 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
279 endif
281 ifeq ($(ISA),m3)
282 COMPILER = TMS470
283 ifeq ($(FORMAT),ELF)
284 TARGET_XDC = ti.targets.arm.elf.M3
285 FORMAT_EXT = e
286 else
287 TARGET_XDC = ti.targets.arm.M3
288 endif
290 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
291 # in the filename extension of object/library/executable files
292 ifeq ($(ENDIAN),big)
293 ENDIAN_EXT = e
294 endif
296 # Define the file extensions
297 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
298 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
299 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
300 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
301 endif
303 ifeq ($(ISA),674)
304 COMPILER = C6000
305 ifeq ($(FORMAT),ELF)
306 TARGET_XDC = ti.targets.elf.C674
307 FORMAT_EXT = e
308 else
309 TARGET_XDC = ti.targets.C674
310 endif
312 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
313 # in the filename extension of object/library/executable files
314 ifeq ($(ENDIAN),big)
315 ENDIAN_EXT = e
316 endif
318 # Define the file extensions
319 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
320 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
321 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
322 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
323 endif
325 ifeq ($(ISA),64p)
326 COMPILER = C6000
327 ifeq ($(FORMAT),ELF)
328 ifeq ($(ENDIAN),big)
329 TARGET_XDC = ti.targets.elf.C64P_big_endian
330 else
331 TARGET_XDC = ti.targets.elf.C64P
332 endif
333 FORMAT_EXT = e
334 else
335 ifeq ($(ENDIAN),big)
336 TARGET_XDC = ti.targets.C64P_big_endian
337 else
338 TARGET_XDC = ti.targets.C64P
339 endif
340 endif
342 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
343 # in the filename extension of object/library/executable files
344 ifeq ($(ENDIAN),big)
345 ENDIAN_EXT = e
346 endif
348 # Define the file extensions
349 OBJEXT = o$(FORMAT_EXT)64P$(ENDIAN_EXT)
350 LIBEXT = a$(FORMAT_EXT)64P$(ENDIAN_EXT)
351 EXEEXT = x$(FORMAT_EXT)64P$(ENDIAN_EXT)
352 ASMEXT = s$(FORMAT_EXT)64P$(ENDIAN_EXT)
353 endif
355 ifeq ($(ISA),64t)
356 COMPILER = C6000
357 ifeq ($(FORMAT),ELF)
358 ifeq ($(ENDIAN),big)
359 TARGET_XDC = ti.targets.elf.C64T_big_endian
360 else
361 TARGET_XDC = ti.targets.elf.C64T
362 endif
363 FORMAT_EXT = e
364 else
365 ifeq ($(ENDIAN),big)
366 TARGET_XDC = ti.targets.C64T_big_endian
367 else
368 TARGET_XDC = ti.targets.C64T
369 endif
370 endif
372 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
373 # in the filename extension of object/library/executable files
374 ifeq ($(ENDIAN),big)
375 ENDIAN_EXT = e
376 endif
378 # Define the file extensions
379 OBJEXT = o$(FORMAT_EXT)64T$(ENDIAN_EXT)
380 LIBEXT = a$(FORMAT_EXT)64T$(ENDIAN_EXT)
381 EXEEXT = x$(FORMAT_EXT)64T$(ENDIAN_EXT)
382 ASMEXT = s$(FORMAT_EXT)64T$(ENDIAN_EXT)
383 endif
385 ifeq ($(ISA),66)
386 COMPILER = C6000
387 ifeq ($(FORMAT),ELF)
388 ifeq ($(ENDIAN),big)
389 TARGET_XDC = ti.targets.elf.C66_big_endian
390 else
391 TARGET_XDC = ti.targets.elf.C66
392 endif
393 FORMAT_EXT = e
394 else
395 ifeq ($(ENDIAN),big)
396 TARGET_XDC = ti.targets.C66_big_endian
397 else
398 TARGET_XDC = ti.targets.C66
399 endif
400 endif
402 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
403 # in the filename extension of object/library/executable files
404 ifeq ($(ENDIAN),big)
405 ENDIAN_EXT = e
406 endif
408 # Define the file extensions
409 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
410 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
411 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
412 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
414 endif
416 ifeq ($(ISA),a8)
417 ifeq ($(TOOLCHAIN_a8),TI)
418 TARGET_XDC = ti.targets.arm.elf.A8F
419 ifeq ($(FORMAT),ELF)
420 FORMAT_EXT = e
421 endif
422 ifeq ($(ENDIAN),big)
423 ENDIAN_EXT = ef
424 else
425 ENDIAN_EXT = f
426 endif
427 COMPILER = TMS470
428 else
429 TARGET_XDC = gnu.targets.arm.A8F
430 CFLAGS_LOCAL_a8host += -DGCC_BUILD
431 FORMAT_EXT =
432 ENDIAN_EXT = fg
433 COMPILER = LINARO_GCC
434 endif
436 # Define the file extensions
437 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
438 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
439 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
440 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
441 endif
443 ifeq ($(ISA),arm9)
444 COMPILER = TMS470
445 TARGET_XDC = ti.targets.arm.elf.Arm9
446 ifeq ($(FORMAT),ELF)
447 FORMAT_EXT = e
448 endif
449 ifeq ($(ENDIAN),big)
450 ENDIAN_EXT = e
451 endif
453 # Define the file extensions
454 OBJEXT = o$(FORMAT_EXT)9$(ENDIAN_EXT)
455 LIBEXT = a$(FORMAT_EXT)9$(ENDIAN_EXT)
456 EXEEXT = x$(FORMAT_EXT)9$(ENDIAN_EXT)
457 ASMEXT = s$(FORMAT_EXT)9$(ENDIAN_EXT)
458 endif
460 ifeq (sim,$(findstring sim,$(PLATFORM)))
461 OMX_PLATFORM = sim
462 endif
463 export COMPILER
464 ifeq (ti816x-evm,$(findstring ti816x-evm,$(PLATFORM)))
465 # Don't know why platform define for XDC is separate for A8. TO DO.
466 ifeq ($(CORE),a8host)
467 OMX_PLATFORM = evmSi
468 else
469 OMX_PLATFORM = evmSi816X
470 endif
471 endif
473 ifeq ($(CORE),m3vpss)
474 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName: \\\"VPSS-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
475 endif
476 ifeq ($(CORE),m3video)
477 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"VIDEO-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
478 endif
479 ifeq ($(CORE),c6xdsp)
480 CFGARGS_XDC =
481 endif
482 ifeq ($(CORE),a8host)
483 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"HOST\\\", tiler: \\\"NullTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
484 endif
486 # Nothing beyond this point