a98e711cc906f13e30f388dae74160012ff3c2f7
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 # ti816x (Netra) catalog EVM
14 ifeq ($(PLATFORM),ti816x-evm)
15 SOC = ti816x
16 ifeq ($(CORE),c6xdsp)
17 PLATFORM_XDC = "ti.platforms.evmDM8168"
18 endif
19 endif
21 # ti816x (Netra) Simulator
22 ifeq ($(PLATFORM),ti816x-sim)
23 SOC = ti816x
24 ifeq ($(CORE),c6xdsp)
25 PLATFORM_XDC = "ti.platforms.simDM8168"
26 endif
27 endif
29 # ti814x (Centaurus) Catalog EVM
30 ifeq ($(PLATFORM),ti814x-evm)
31 SOC = ti814x
32 ifeq ($(CORE),c6xdsp)
33 PLATFORM_XDC = "ti.platforms.evmDM8148"
34 endif
35 ifeq ($(CORE),a8host)
36 PLATFORM_XDC = "ti.platforms.evmDM8148"
37 endif
38 endif
40 # c6472 (Tomahawk) EVM
41 ifeq ($(PLATFORM),c6472-evm)
42 SOC = c6472
43 PLATFORM_XDC = "ti.platforms.evm6472"
44 endif
46 # tci6486 (Tomahawk) EVM
47 ifeq ($(PLATFORM),tci6486-evm)
48 SOC = c6472
49 PLATFORM_XDC = "ti.platforms.evmTCI6486"
50 endif
52 # tci6608 (Shannon) Simulator
53 ifeq ($(PLATFORM),tci6608-sim)
54 SOC = c6608
55 PLATFORM_XDC = "ti.platforms.simTCI6608"
56 endif
58 # tci6616 (Nyquist) Simulator
59 ifeq ($(PLATFORM),tci6616-sim)
60 SOC = c6616
61 PLATFORM_XDC = "ti.platforms.simTCI6616"
62 endif
64 # c6670 (Nyquist) EVM
65 ifeq ($(PLATFORM),c6670-evm)
66 SOC = c6670
67 PLATFORM_XDC = "ti.platforms.evm6670"
68 endif
70 # c6678 (Shannon) EVM
71 ifeq ($(PLATFORM),c6678-evm)
72 SOC = c6678
73 PLATFORM_XDC = "ti.platforms.evm6678"
74 endif
77 # omapl138 (Freon) EVM
78 ifeq ($(PLATFORM),omapl138-evm)
79 SOC = omapl138
80 PLATFORM_XDC = "ti.platforms.evmOMAPL138"
81 endif
83 # c6748 (Freon) EVM
84 ifeq ($(PLATFORM),c6748-evm)
85 SOC = omapl138
86 PLATFORM_XDC = "ti.platforms.evm6748"
87 endif
89 # da830 (Primus) EVM
90 ifeq ($(PLATFORM),da830-evm)
91 SOC = omapl137
92 PLATFORM_XDC = "ti.platforms.evmDA830"
93 endif
95 # Generic platform
96 ifeq ($(PLATFORM),generic)
97 SOC = generic
98 PLATFORM_XDC =
99 endif
101 # Derive Target/ISA from CORE
103 # m3vpss
104 ifeq ($(CORE),m3vpss)
105 ISA = m3
106 endif
108 # m3video
109 ifeq ($(CORE),m3video)
110 ISA = m3
111 endif
113 # a8host
114 ifeq ($(CORE),a8host)
115 ISA = a8
116 endif
118 # arm9
119 ifeq ($(CORE),arm9)
120 ISA = arm9
121 endif
123 # c6xdsp
124 ifeq ($(CORE),c6xdsp)
125 ifeq ($(SOC),ti816x)
126 ISA = 674
127 endif
128 ifeq ($(SOC),ti814x)
129 ISA = 674
130 endif
131 ifeq ($(SOC),omapl137)
132 ISA = 674
133 endif
134 ifeq ($(SOC),omapl138)
135 ISA = 674
136 endif
137 ifeq ($(SOC),c6472)
138 ISA = 64p
139 endif
140 ifeq ($(SOC),c6608)
141 ISA = 66
142 endif
143 ifeq ($(SOC),c6616)
144 ISA = 66
145 endif
146 ifeq ($(SOC),c6670)
147 ISA = 66
148 endif
149 ifeq ($(SOC),c6678)
150 ISA = 66
151 endif
152 endif
154 # Platform and SOC is generic; use the core name same as ISA (eg: 674)
155 ifeq ($(SOC),generic)
156 ISA = $(CORE)
157 endif
159 #
160 # Derive XDC/ISA specific settings
161 #
163 ifeq ($(ISA),m3)
164 ifeq ($(FORMAT),ELF)
165 TARGET_XDC = ti.targets.arm.elf.M3
166 FORMAT_EXT = e
167 else
168 TARGET_XDC = ti.targets.arm.M3
169 endif
170 ifeq ($(CORE),m3video)
171 PLATFORM_XDC = "ti.platforms.generic:DucatiPlatform_Core0"
172 else
173 PLATFORM_XDC = "ti.platforms.generic:DucatiPlatform_Core1"
174 endif
176 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
177 # in the filename extension of object/library/executable files
178 ifeq ($(ENDIAN),big)
179 ENDIAN_EXT = e
180 endif
182 # Define the file extensions
183 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
184 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
185 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
186 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
187 endif
189 ifeq ($(ISA),674)
190 ifeq ($(FORMAT),ELF)
191 TARGET_XDC = ti.targets.elf.C674
192 FORMAT_EXT = e
193 else
194 TARGET_XDC = ti.targets.C674
195 endif
197 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
198 # in the filename extension of object/library/executable files
199 ifeq ($(ENDIAN),big)
200 ENDIAN_EXT = e
201 endif
203 # Define the file extensions
204 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
205 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
206 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
207 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
208 endif
210 ifeq ($(ISA),64p)
211 ifeq ($(FORMAT),ELF)
212 ifeq ($(ENDIAN),big)
213 TARGET_XDC = ti.targets.elf.C64P_big_endian
214 else
215 TARGET_XDC = ti.targets.elf.C64P
216 endif
217 FORMAT_EXT = e
218 else
219 ifeq ($(ENDIAN),big)
220 TARGET_XDC = ti.targets.C64P_big_endian
221 else
222 TARGET_XDC = ti.targets.C64P
223 endif
224 endif
226 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
227 # in the filename extension of object/library/executable files
228 ifeq ($(ENDIAN),big)
229 ENDIAN_EXT = e
230 endif
232 # Define the file extensions
233 OBJEXT = o$(FORMAT_EXT)64P$(ENDIAN_EXT)
234 LIBEXT = a$(FORMAT_EXT)64P$(ENDIAN_EXT)
235 EXEEXT = x$(FORMAT_EXT)64P$(ENDIAN_EXT)
236 ASMEXT = s$(FORMAT_EXT)64P$(ENDIAN_EXT)
237 endif
239 ifeq ($(ISA),66)
240 ifeq ($(FORMAT),ELF)
241 ifeq ($(ENDIAN),big)
242 TARGET_XDC = ti.targets.elf.C66_big_endian
243 else
244 TARGET_XDC = ti.targets.elf.C66
245 endif
246 FORMAT_EXT = e
247 else
248 ifeq ($(ENDIAN),big)
249 TARGET_XDC = ti.targets.C66_big_endian
250 else
251 TARGET_XDC = ti.targets.C66
252 endif
253 endif
255 # If ENDIAN is set to "big", set ENDIAN_EXT to "e", that would be used in
256 # in the filename extension of object/library/executable files
257 ifeq ($(ENDIAN),big)
258 ENDIAN_EXT = e
259 endif
261 # Define the file extensions
262 OBJEXT = o$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
263 LIBEXT = a$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
264 EXEEXT = x$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
265 ASMEXT = s$(FORMAT_EXT)$(ISA)$(ENDIAN_EXT)
267 endif
269 ifeq ($(ISA),a8)
270 ifeq ($(TOOLCHAIN_a8),TI)
271 TARGET_XDC = ti.targets.arm.elf.A8F
272 else
273 TARGET_XDC = gnu.targets.arm.GCArmv5T
274 PLATFORM_XDC = "host.platforms.arm"
275 endif
276 ifeq ($(FORMAT),ELF)
277 FORMAT_EXT = e
278 endif
279 ifeq ($(ENDIAN),big)
280 ENDIAN_EXT = e
281 endif
283 # Define the file extensions
284 OBJEXT = o$(FORMAT_EXT)a8f$(ENDIAN_EXT)
285 LIBEXT = a$(FORMAT_EXT)a8f$(ENDIAN_EXT)
286 EXEEXT = x$(FORMAT_EXT)a8f$(ENDIAN_EXT)
287 ASMEXT = s$(FORMAT_EXT)a8f$(ENDIAN_EXT)
288 endif
290 ifeq ($(ISA),arm9)
291 TARGET_XDC = ti.targets.arm.elf.Arm9
292 ifeq ($(FORMAT),ELF)
293 FORMAT_EXT = e
294 endif
295 ifeq ($(ENDIAN),big)
296 ENDIAN_EXT = e
297 endif
299 # Define the file extensions
300 OBJEXT = o$(FORMAT_EXT)9$(ENDIAN_EXT)
301 LIBEXT = a$(FORMAT_EXT)9$(ENDIAN_EXT)
302 EXEEXT = x$(FORMAT_EXT)9$(ENDIAN_EXT)
303 ASMEXT = s$(FORMAT_EXT)9$(ENDIAN_EXT)
304 endif
306 ifeq (sim,$(findstring sim,$(PLATFORM)))
307 OMX_PLATFORM = sim
308 endif
310 ifeq (ti816x-evm,$(findstring ti816x-evm,$(PLATFORM)))
311 # Don't know why platform define for XDC is separate for A8. TO DO.
312 ifeq ($(CORE),a8host)
313 OMX_PLATFORM = evmSi
314 else
315 OMX_PLATFORM = evmSi816X
316 endif
317 endif
319 ifeq ($(CORE),m3vpss)
320 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName: \\\"VPSS-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
321 endif
322 ifeq ($(CORE),m3video)
323 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"VIDEO-M3\\\", tiler: \\\"DucatiTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
324 endif
325 ifeq ($(CORE),c6xdsp)
326 CFGARGS_XDC =
327 endif
328 ifeq ($(CORE),a8host)
329 CFGARGS_XDC = \"{mode: \\\"$(IPC_MODE)\\\", coreName:\\\"HOST\\\", tiler: \\\"NullTilerMemMgr\\\", platformMem: \\\"$(PLATFORM_MEM)\\\", maxResolution: \\\"$(MAX_RESOLUTION)\\\", omxBuildPlatform: \\\"$(OMX_PLATFORM)\\\"}\"
330 endif
332 # Nothing beyond this point