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