Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / t1_fpga / src / xilinx / configs / 1c1t_guest.desc
CommitLineData
920dae64
AT
1/*
2 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
4 */
5
6/*
7 * The machine description files are derived from machine description
8 * binaries in OpenSPARC T2 legion simulation directory.
9 */
10
11#include "xilinx_t1_system_config.h"
12
13node root root {
14
15 content-version = "1.0";
16 fwd -> memory;
17 fwd -> cpus;
18 fwd -> phys_io;
19 fwd -> platform;
20 fwd -> openboot;
21 fwd -> virtual-devices;
22 reset-reason = 0x0;
23 fwd -> maus;
24 fwd -> cwqs;
25 md-generation# = 0x1;
26 fwd -> channel-endpoints;
27}
28
29
30node cache cache {
31
32 level = 0x1;
33 type = { "instn" };
34 line-size = 0x20;
35 size = 0x4000;
36 associativity = 0x4;
37 back -> exec-unit;
38 fwd -> cache_2;
39}
40
41
42node cache cache_1 {
43
44 level = 0x1;
45 type = { "data" };
46 line-size = 0x10;
47 size = 0x2000;
48 associativity = 0x4;
49 back -> exec-unit_1;
50 fwd -> cache_2;
51}
52
53
54node tlb tlb {
55
56 level = 0x1;
57 type = { "instn" };
58 entries = 0x40;
59 associativity = 0x0;
60 page-size-list = 0x2b;
61 back -> exec-unit;
62}
63
64
65node tlb tlb_1 {
66
67 level = 0x1;
68 type = { "data" };
69 entries = 0x80;
70 associativity = 0x0;
71 page-size-list = 0x2b;
72 back -> exec-unit_1;
73}
74
75
76node exec-unit exec-unit {
77
78 type = { "ifetch" };
79 back -> cpu;
80 fwd -> cache;
81 fwd -> tlb;
82}
83
84
85node exec-unit exec-unit_1 {
86
87 type = { "integer" , "integer-load" , "integer-store" , "fp-load" , "fp-store" };
88 back -> cpu;
89 fwd -> cache_1;
90 fwd -> tlb_1;
91}
92
93
94node cpu cpu {
95
96 id = 0x0;
97 pid = 0x0;
98 serial# = 0x0;
99 isalist = { "sparcv9" , "sparcv8plus" , "sparcv8" , "sparcv8-fsmuld" , "sparcv7" , "sparc" };
100 clock-frequency = T1_FPGA_STICK_FREQ;
101 compatible = { "SUNW,UltraSPARC-T1" , "SUNW,sun4v-cpu" , "sun4v" };
102 nwins = 0x8;
103 mmu-type = "sun4v";
104 q-cpu-mondo-#bits = 0x8;
105 q-dev-mondo-#bits = 0x8;
106 q-resumable-#bits = 0x8;
107 q-nonresumable-#bits = 0x8;
108 mmu-max-#tsbs = 0x4;
109 mmu-#context-bits = 0xd;
110 mmu-#shared-contexts = 0x2;
111 mmu-page-size-list = 0x2b;
112 mmu-#va-bits = 0x30;
113 back -> cpus;
114 fwd -> exec-unit;
115 fwd -> exec-unit_1;
116 fwd -> exec-unit_2;
117}
118
119
120node exec-unit exec-unit_2 {
121
122 type = { "fp" };
123 back -> cpu;
124}
125
126
127node cpus cpus {
128
129 fwd -> cpu;
130 back -> root;
131}
132
133
134node cache cache_2 {
135
136 level = 0x2;
137 type = { "instn" , "data" };
138 line-size = 0x40;
139 size = 0x300000;
140 associativity = 0xC;
141 back -> cache_1;
142 back -> cache;
143}
144
145
146node phys_io phys_io {
147
148 back -> root;
149 fwd -> iodevice;
150}
151
152
153node iodevice iodevice {
154
155 back -> phys_io;
156 name = "pci";
157 pseudonym = "pci";
158 disabled = 0x0;
159 device-type = "pciex";
160 compatible = { "SUNW,sun4v-pci" };
161 cfg-handle = 0x0;
162 address-ranges = { 0x00 , 0x00 , 0x00 , 0xc8 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xca , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x7f , 0xff , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xcc , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0xff , 0xff , 0x00 , 0x00 };
163 virtual-dma = { 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 };
164 ino-bitmap = 0xf;
165 probe-list = "0";
166 msi-address-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x7f , 0xff , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xff , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 };
167 #msi = 0x100;
168 msi-data-mask = 0xff;
169 msi-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 };
170 msi-eq-size = 0x80;
171 msix-data-width = 0x20;
172 #msi-eqs = 0x24;
173 msi-eq-to-devino = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x24 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x18 };
174 interrupts = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3f , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e };
175 #interrupt-cells = 0x1;
176 interrupt-map-mask = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xf0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 };
177 bus-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff };
178 fwd -> interrupt-map-entry;
179 fwd -> interrupt-map-entry_1;
180 fwd -> interrupt-map-entry_2;
181 fwd -> interrupt-map-entry_3;
182}
183
184
185node interrupt-maps interrupt-maps {
186
187 back -> openboot;
188 fwd -> interrupt-map;
189}
190
191
192node interrupt-map interrupt-map {
193
194 back -> interrupt-maps;
195 dev = "/pci@0";
196 parent = "/pci@0";
197 intr-cells = 0x1;
198 intr-mask = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xf0 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x07 };
199 interrupts = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3f , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e };
200 fwd -> interrupt;
201 fwd -> interrupt_1;
202 fwd -> interrupt_2;
203 fwd -> interrupt_3;
204}
205
206
207node interrupt interrupt {
208
209 back -> interrupt-map;
210 intr = 0x1;
211 ino = 0x14;
212 addr = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
213}
214
215
216node interrupt interrupt_1 {
217
218 back -> interrupt-map;
219 intr = 0x2;
220 ino = 0x15;
221 addr = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
222}
223
224
225node interrupt interrupt_2 {
226
227 back -> interrupt-map;
228 intr = 0x3;
229 ino = 0x16;
230 addr = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
231}
232
233
234node interrupt interrupt_3 {
235
236 back -> interrupt-map;
237 intr = 0x4;
238 ino = 0x17;
239 addr = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
240}
241
242
243node interrupt-map-entry interrupt-map-entry {
244
245 child-unit-address = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
246 child-interrupt = 0x1;
247 parent-interrupt = 0x14;
248 parent-device-path = "/pci@0";
249 back -> iodevice;
250}
251
252
253node interrupt-map-entry interrupt-map-entry_1 {
254
255 child-unit-address = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
256 child-interrupt = 0x2;
257 parent-interrupt = 0x15;
258 parent-device-path = "/pci@0";
259 back -> iodevice;
260}
261
262
263node interrupt-map-entry interrupt-map-entry_2 {
264
265 child-unit-address = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
266 child-interrupt = 0x3;
267 parent-interrupt = 0x16;
268 parent-device-path = "/pci@0";
269 back -> iodevice;
270}
271
272
273node interrupt-map-entry interrupt-map-entry_3 {
274
275 child-unit-address = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 };
276 child-interrupt = 0x4;
277 parent-interrupt = 0x17;
278 parent-device-path = "/pci@0";
279 back -> iodevice;
280}
281
282
283node openboot openboot {
284
285 back -> root;
286 fwd -> interrupt-maps;
287 fwd -> devalias;
288 fwd -> variables;
289}
290
291
292node variables variables {
293
294 back -> openboot;
295 fcode-debug? = "true";
296 boot-device = "vdisk";
297 auto-boot? = "false";
298}
299
300
301node virtual-devices virtual-devices {
302
303 back -> root;
304 name = "virtual-devices";
305 cfg-handle = 0x100;
306 probe-list = 0x1f;
307 compatible = { "SUNW,sun4v-virtual-devices" };
308 device-type = "virtual-devices";
309 fwd -> virtual-device;
310 fwd -> channel-devices;
311 fwd -> virtual-device_4;
312 fwd -> virtual-device_5;
313}
314
315
316node mblock mblock {
317
318 base = T1_FPGA_GUEST_MEMBASE;
319 size = T1_FPGA_GUEST_MEMSIZE;
320 back -> memory;
321}
322
323
324node memory memory {
325
326 memory-generation-id# = 0x0;
327 fwd -> mblock;
328 back -> root;
329}
330
331
332node platform platform {
333
334 banner-name = "Sun Fire T1000";
335 name = "SUNW,Sun-Fire-T1000";
336 watchdog-resolution = 0x3e8;
337 watchdog-max-timeout = 0x757b12c00;
338 max-cpus = 0x20;
339 mac-address = 0x00E0815F2CAB;
340 hostid = 0x83f9edf0;
341 serial# = 0xab4130;
342 stick-frequency = T1_FPGA_STICK_FREQ;
343 back -> root;
344 domaining-enabled = 0x1;
345}
346
347
348node maus maus {
349
350}
351
352
353node cwqs cwqs {
354
355}
356
357
358node virtual-device virtual-device {
359
360 back -> virtual-devices;
361 name = "console";
362 device-type = "serial";
363 intr = 0x1;
364 ino = 0x11;
365 channel# = 0x0;
366 cfg-handle = 0x1;
367 compatible = { "qcn" , "SUNW,sun4v-console" };
368}
369
370
371node devalias devalias {
372
373 back -> openboot;
374 vdisk = "/virtual-devices/disk@0";
375 snet = "/virtual-devices/network@0";
376 ttya = "/virtual-devices/console@1";
377 nvram = "/virtual-devices/nvram@3";
378 ttyb = "/virtual-devices/console@4";
379 scsi = "/pci@7c0/scsi@1";
380 disk = "/pci@7c0/scsi@1/disk@0";
381 virtual-console = "/virtual-devices/console@1";
382}
383
384
385node channel-devices channel-devices {
386
387 back -> virtual-devices;
388 name = "channel-devices";
389 device-type = "channel-devices";
390 compatible = { "SUNW,sun4v-channel-devices" };
391 cfg-handle = 0x200;
392 fwd -> virtual-device_1;
393 fwd -> virtual-device_2;
394 fwd -> virtual-device_3;
395}
396
397
398node channel-endpoints channel-endpoints {
399
400 back -> root;
401 fwd -> channel-endpoint;
402 fwd -> channel-endpoint_1;
403 fwd -> channel-endpoint_2;
404}
405
406
407node channel-endpoint channel-endpoint {
408
409 back -> channel-endpoints;
410 id = 0x2;
411 tx-ino = 0x4;
412 rx-ino = 0x5;
413}
414
415
416node virtual-device virtual-device_1 {
417
418 back -> channel-devices;
419 compatible = { "SUNW,sun4v-channel" };
420 device-type = "serial";
421 name = "virtual-channel";
422 cfg-handle = 0x0;
423 fwd -> virtual-device-port;
424 fwd -> virtual-device-port_1;
425}
426
427
428node virtual-device-port virtual-device-port {
429
430 back -> virtual-device_1;
431 name = "vldc-port";
432 id = 0x0;
433 fwd -> channel-endpoint_1;
434 vldc-svc-name = "hvctl";
435}
436
437
438node channel-endpoint channel-endpoint_1 {
439
440 back -> channel-endpoints;
441 id = 0x0;
442 tx-ino = 0x0;
443 rx-ino = 0x1;
444 back -> virtual-device-port;
445}
446
447
448node virtual-device-port virtual-device-port_1 {
449
450 back -> virtual-device_1;
451 name = "vldc-port";
452 id = 0x1;
453 fwd -> channel-endpoint_2;
454 vldc-svc-name = "ldom-primary";
455}
456
457
458node channel-endpoint channel-endpoint_2 {
459
460 back -> channel-endpoints;
461 id = 0x1;
462 tx-ino = 0x2;
463 rx-ino = 0x3;
464 back -> virtual-device-port_1;
465}
466
467
468node virtual-device virtual-device_2 {
469
470 back -> channel-devices;
471 compatible = { "SUNW,sun4v-console-concentrator" };
472 device-type = "vcc";
473 name = "virtual-console-concentrator";
474 cfg-handle = 0x0;
475}
476
477
478node virtual-device virtual-device_3 {
479
480 back -> channel-devices;
481 compatible = { "SUNW,sun4v-disk-server" };
482 device-type = "vds";
483 name = "virtual-disk-server";
484 cfg-handle = 0x0;
485}
486
487
488node virtual-device virtual-device_4 {
489
490 back -> virtual-devices;
491 name = "disk";
492 fcode-driver-name = "disk-virtual-device";
493 my-space = 0x0;
494 intr = 0x0;
495 ino = 0x0;
496 cfg-handle = 0x0;
497}
498
499
500node virtual-device virtual-device_5 {
501
502 back -> virtual-devices;
503 name = "snet";
504 fcode-driver-name = "net-virtual-device";
505 my-space = 0x0;
506 intr = 0x0;
507 ino = T1_FPGA_SNET_INO;
508 cfg-handle = 0x2;
509}