1 2 3 4 5 6 7 8 9 10 11
12
13 14 15 16 17
18
19 /*!
20 * ======== Platform ========
21 * Platform support for simVayu
22 *
23 * This module implements xdc.platform.IPlatform and defines configuration
24 * parameters that correspond to this platform's Cpu's, Board's, etc.
25 *
26 * The configuration parameters are initialized in this package's
27 * configuration script (package.cfg) and "bound" to the TCOM object
28 * model. Once they are part of the model, these parameters are
29 * queried by a program's configuration script.
30 *
31 * This particular platform has 1 Cortex-A15, 4 EVE's, 2 Benelli/IPU
32 * Sub-system (Dual M4's) and 2 C66x DSP's.
33 */
34 metaonly module Platform inherits xdc.platform.IPlatform
35 {
36 readonly config xdc.platform.IPlatform.Board BOARD = {
37 id: "0",
38 boardName: "simVayu",
39 boardFamily: "simVayu",
40 boardRevision: null,
41 };
42
43 readonly config xdc.platform.IExeContext.Cpu DSP = {
44 id: "0",
45 clockRate: 1000,
46 catalogName: "ti.catalog.c6000",
47 deviceName: "Vayu",
48 revision: "1.0",
49 };
50
51
52 readonly config xdc.platform.IExeContext.Cpu M4 = {
53 id: "1",
54 clockRate: 266.0,
55 catalogName: "ti.catalog.arm.cortexm4",
56 deviceName: "Vayu",
57 revision: "1.0",
58 };
59
60
61 readonly config xdc.platform.IExeContext.Cpu EVE = {
62 id: "2",
63 clockRate: 200.0,
64 catalogName: "ti.catalog.arp32",
65 deviceName: "Vayu",
66 revision: "1.0"
67 };
68
69
70 readonly config xdc.platform.IExeContext.Cpu GPP = {
71 id: "3",
72 clockRate: 800.0,
73 catalogName: "ti.catalog.arm.cortexa15",
74 deviceName: "Vayu",
75 revision: "1.0"
76 };
77
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
113
114 readonly config Any SR_0 = {
115 name: "SR_0", space: "data", access: "RWX",
116 base: 0x8E000000, len: 0x1000000,
117 comment: "SR#0 Memory (16 MB)"
118 };
119
120 readonly config Any DSP1 = {
121 externalMemoryMap: [
122 [ "DSP1_PROG", {
123 name: "DSP1_PROG", space: "code/data", access: "RWX",
124 base: 0x8C000000, len: 0x1000000,
125 comment: "DSP1 Program Memory (16 MB)"
126 }],
127 [ "SR_0", SR_0 ]
128 ],
129 codeMemory: "DSP1_PROG",
130 dataMemory: "DSP1_PROG",
131 stackMemory: "DSP1_PROG",
132 l1DMode: "32k",
133 l1PMode: "32k",
134 l2Mode: "128k"
135 };
136
137 readonly config Any DSP2 = {
138 externalMemoryMap: [
139 [ "DSP2_PROG", {
140 name: "DSP2_PROG", space: "code/data", access: "RWX",
141 base: 0x8D000000, len: 0x1000000,
142 comment: "DSP2 Program Memory (16 MB)"
143 }],
144 [ "SR_0", SR_0 ]
145 ],
146 codeMemory: "DSP2_PROG",
147 dataMemory: "DSP2_PROG",
148 stackMemory: "DSP2_PROG",
149 l1DMode: "32k",
150 l1PMode: "32k",
151 l2Mode: "128k"
152 };
153
154 readonly config Any EVE1 = {
155 externalMemoryMap: [
156 [ "EVEVECS", {
157 name: "EVEVECS", space: "code/data", access: "RWX",
158 base: 0x80000000, len: 0x100, page: 0,
159 comment: "EVE1 Vector Table (256 B)"
160 }],
161 [ "EVE1_PROG", {
162 name: "EVE1_PROG", space: "code/data", access: "RWX",
163 base: 0x81000000, len: 0x400000, page: 1,
164 comment: "EVE1 Program Memory (4 MB)"
165 }],
166 [ "SR_0", SR_0 ]
167 ],
168 codeMemory: "EVE1_PROG",
169 dataMemory: "EVE1_PROG",
170 stackMemory: "EVE1_PROG"
171 };
172
173 readonly config Any EVE2 = {
174 externalMemoryMap: [
175 [ "EVEVECS", {
176 name: "EVEVECS", space: "code/data", access: "RWX",
177 base: 0x80010000, len: 0x100, page: 0,
178 comment: "EVE2 Vector Table (256 B)"
179 }],
180 [ "EVE2_PROG", {
181 name: "EVE2_PROG", space: "code/data", access: "RWX",
182 base: 0x82000000, len: 0x400000, page: 1,
183 comment: "EVE2 Program Memory (4 MB)"
184 }],
185 [ "SR_0", SR_0 ]
186 ],
187 codeMemory: "EVE2_PROG",
188 dataMemory: "EVE2_PROG",
189 stackMemory: "EVE2_PROG"
190 };
191
192 readonly config Any EVE3 = {
193 externalMemoryMap: [
194 [ "EVEVECS", {
195 name: "EVEVECS", space: "code/data", access: "RWX",
196 base: 0x80020000, len: 0x100, page: 0,
197 comment: "EVE3 Vector Table (256 B)"
198 }],
199 [ "EVE3_PROG", {
200 name: "EVE3_PROG", space: "code/data", access: "RWX",
201 base: 0x83000000, len: 0x400000, page: 1,
202 comment: "EVE3 Program Memory (4 MB)"
203 }],
204 [ "SR_0", SR_0 ]
205 ],
206 codeMemory: "EVE3_PROG",
207 dataMemory: "EVE3_PROG",
208 stackMemory: "EVE3_PROG"
209 };
210
211 readonly config Any EVE4 = {
212 externalMemoryMap: [
213 [ "EVEVECS", {
214 name: "EVEVECS", space: "code/data", access: "RWX",
215 base: 0x80030000, len: 0x100, page: 0,
216 comment: "EVE4 Vector Table (256 B)"
217 }],
218 [ "EVE4_PROG", {
219 name: "EVE4_PROG", space: "code/data", access: "RWX",
220 base: 0x84000000, len: 0x400000, page: 1,
221 comment: "EVE4 Program Memory (4 MB)"
222 }],
223 [ "SR_0", SR_0 ]
224 ],
225 codeMemory: "EVE4_PROG",
226 dataMemory: "EVE4_PROG",
227 stackMemory: "EVE4_PROG"
228 };
229
230 readonly config Any IPU1 = {
231 externalMemoryMap: [
232 [ "IPU1_PROG", {
233 name: "IPU1_PROG", space: "code/data", access: "RWX",
234 base: 0x8A000000, len: 0x800000,
235 comment: "IPU1 Program Memory (8 MB)"
236 }],
237 [ "SR_0", SR_0 ]
238 ],
239 codeMemory: "IPU1_PROG",
240 dataMemory: "IPU1_PROG",
241 stackMemory: "IPU1_PROG"
242 };
243
244 readonly config Any IPU2 = {
245 externalMemoryMap: [
246 [ "IPU2_PROG", {
247 name: "IPU2_PROG", space: "code/data", access: "RWX",
248 base: 0x8A800000, len: 0x800000,
249 comment: "IPU2 Program Memory (8 MB)"
250 }],
251 [ "SR_0", SR_0 ]
252 ],
253 codeMemory: "IPU2_PROG",
254 dataMemory: "IPU2_PROG",
255 stackMemory: "IPU2_PROG"
256 };
257
258 readonly config Any HOST = {
259 externalMemoryMap: [
260 [ "HOST_PROG", {
261 name: "HOST_PROG", space: "code/data", access: "RWX",
262 base: 0x8B000000, len: 0x1000000,
263 comment: "HOST Program Memory (16 MB)"
264 }],
265 [ "SR_0", SR_0 ]
266 ],
267 codeMemory: "HOST_PROG",
268 dataMemory: "HOST_PROG",
269 stackMemory: "HOST_PROG"
270 };
271
272 instance:
273
274 /*!
275 * ======== externalMemoryMap ========
276 * Memory regions as defined in the Vayu Simulator Specification
277 */
278 override readonly config xdc.platform.IPlatform.Memory
279 externalMemoryMap[string] = [
280 ["EXT_RAM", {
281 comment: "1 GB External RAM Memory",
282 name: "EXT_RAM",
283 base: 0x80000000,
284 len: 0x40000000
285 }]
286 ];
287
288 289 290 291 292 293
294 config String l1PMode = "32k";
295
296 297 298 299 300 301
302 config String l1DMode = "32k";
303
304 305 306 307 308 309
310 config String l2Mode = "0k";
311 };
312 313 314
315