Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / t1_fpga / src / xilinx / configs / 2c1t_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_4;
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_4;
51}
52
53node cache cache_2 {
54
55 level = 0x1;
56 type = { "instn" };
57 line-size = 0x20;
58 size = 0x4000;
59 associativity = 0x4;
60 back -> exec-unit_2;
61 fwd -> cache_4;
62}
63
64
65node cache cache_3 {
66
67 level = 0x1;
68 type = { "data" };
69 line-size = 0x10;
70 size = 0x2000;
71 associativity = 0x4;
72 back -> exec-unit_3;
73 fwd -> cache_4;
74}
75
76
77node tlb tlb {
78
79 level = 0x1;
80 type = { "instn" };
81 entries = 0x40;
82 associativity = 0x0;
83 page-size-list = 0x2b;
84 back -> exec-unit;
85}
86
87
88node tlb tlb_1 {
89
90 level = 0x1;
91 type = { "data" };
92 entries = 0x80;
93 associativity = 0x0;
94 page-size-list = 0x2b;
95 back -> exec-unit_1;
96}
97
98
99node tlb tlb_2 {
100
101 level = 0x1;
102 type = { "instn" };
103 entries = 0x40;
104 associativity = 0x0;
105 page-size-list = 0x2b;
106 back -> exec-unit_2;
107}
108
109
110node tlb tlb_3 {
111
112 level = 0x1;
113 type = { "data" };
114 entries = 0x80;
115 associativity = 0x0;
116 page-size-list = 0x2b;
117 back -> exec-unit_3;
118}
119
120
121node exec-unit exec-unit {
122
123 type = { "ifetch" };
124 back -> cpu;
125 fwd -> cache;
126 fwd -> tlb;
127}
128
129
130node exec-unit exec-unit_1 {
131
132 type = { "integer" , "integer-load" , "integer-store" , "fp-load" , "fp-store" };
133 back -> cpu;
134 fwd -> cache_1;
135 fwd -> tlb_1;
136}
137
138node exec-unit exec-unit_2 {
139
140 type = { "ifetch" };
141 back -> cpu_4;
142 fwd -> cache_2;
143 fwd -> tlb_2;
144}
145
146
147node exec-unit exec-unit_3 {
148
149 type = { "integer" , "integer-load" , "integer-store" , "fp-load" , "fp-store" };
150 back -> cpu_4;
151 fwd -> cache_3;
152 fwd -> tlb_3;
153}
154
155
156node cpu cpu {
157
158 id = 0x0;
159 pid = 0x0;
160 serial# = 0x0;
161 isalist = { "sparcv9" , "sparcv8plus" , "sparcv8" , "sparcv8-fsmuld" , "sparcv7" , "sparc" };
162 clock-frequency = T1_FPGA_STICK_FREQ;
163 compatible = { "SUNW,UltraSPARC-T1" , "SUNW,sun4v-cpu" , "sun4v" };
164 nwins = 0x8;
165 mmu-type = "sun4v";
166 q-cpu-mondo-#bits = 0x8;
167 q-dev-mondo-#bits = 0x8;
168 q-resumable-#bits = 0x8;
169 q-nonresumable-#bits = 0x8;
170 mmu-max-#tsbs = 0x4;
171 mmu-#context-bits = 0xd;
172 mmu-#shared-contexts = 0x2;
173 mmu-page-size-list = 0x2b;
174 mmu-#va-bits = 0x30;
175 back -> cpus;
176 fwd -> exec-unit;
177 fwd -> exec-unit_1;
178 fwd -> exec-unit_4;
179}
180
181
182node cpu cpu_4 {
183
184 id = 0x4;
185 pid = 0x4;
186 serial# = 0x0;
187 isalist = { "sparcv9" , "sparcv8plus" , "sparcv8" , "sparcv8-fsmuld" , "sparcv7" , "sparc" };
188 clock-frequency = T1_FPGA_STICK_FREQ;
189 compatible = { "SUNW,UltraSPARC-T1" , "SUNW,sun4v-cpu" , "sun4v" };
190 nwins = 0x8;
191 mmu-type = "sun4v";
192 q-cpu-mondo-#bits = 0x8;
193 q-dev-mondo-#bits = 0x8;
194 q-resumable-#bits = 0x8;
195 q-nonresumable-#bits = 0x8;
196 mmu-max-#tsbs = 0x4;
197 mmu-#context-bits = 0xd;
198 mmu-#shared-contexts = 0x2;
199 mmu-page-size-list = 0x2b;
200 mmu-#va-bits = 0x30;
201 back -> cpus;
202 fwd -> exec-unit_2;
203 fwd -> exec-unit_3;
204 fwd -> exec-unit_4;
205}
206
207
208node exec-unit exec-unit_4 {
209
210 type = { "fp" };
211 back -> cpu;
212}
213
214
215node cpus cpus {
216
217 fwd -> cpu;
218 fwd -> cpu_4;
219 back -> root;
220}
221
222
223node cache cache_4 {
224
225 level = 0x2;
226 type = { "instn" , "data" };
227 line-size = 0x40;
228 size = 0x300000;
229 associativity = 0xC;
230 back -> cache;
231 back -> cache_1;
232 back -> cache_2;
233 back -> cache_3;
234}
235
236
237node phys_io phys_io {
238
239 back -> root;
240 fwd -> iodevice;
241}
242
243
244node iodevice iodevice {
245
246 back -> phys_io;
247 name = "pci";
248 pseudonym = "pci";
249 disabled = 0x0;
250 device-type = "pciex";
251 compatible = { "SUNW,sun4v-pci" };
252 cfg-handle = 0x0;
253 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 };
254 virtual-dma = { 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 };
255 ino-bitmap = 0xf;
256 probe-list = "0";
257 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 };
258 #msi = 0x100;
259 msi-data-mask = 0xff;
260 msi-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 };
261 msi-eq-size = 0x80;
262 msix-data-width = 0x20;
263 #msi-eqs = 0x24;
264 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 };
265 interrupts = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3f , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e };
266 #interrupt-cells = 0x1;
267 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 };
268 bus-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff };
269 fwd -> interrupt-map-entry;
270 fwd -> interrupt-map-entry_1;
271 fwd -> interrupt-map-entry_2;
272 fwd -> interrupt-map-entry_3;
273}
274
275
276node interrupt-maps interrupt-maps {
277
278 back -> openboot;
279 fwd -> interrupt-map;
280}
281
282
283node interrupt-map interrupt-map {
284
285 back -> interrupt-maps;
286 dev = "/pci@0";
287 parent = "/pci@0";
288 intr-cells = 0x1;
289 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 };
290 interrupts = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3f , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e };
291 fwd -> interrupt;
292 fwd -> interrupt_1;
293 fwd -> interrupt_2;
294 fwd -> interrupt_3;
295}
296
297
298node interrupt interrupt {
299
300 back -> interrupt-map;
301 intr = 0x1;
302 ino = 0x14;
303 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 };
304}
305
306
307node interrupt interrupt_1 {
308
309 back -> interrupt-map;
310 intr = 0x2;
311 ino = 0x15;
312 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 };
313}
314
315
316node interrupt interrupt_2 {
317
318 back -> interrupt-map;
319 intr = 0x3;
320 ino = 0x16;
321 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 };
322}
323
324
325node interrupt interrupt_3 {
326
327 back -> interrupt-map;
328 intr = 0x4;
329 ino = 0x17;
330 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 };
331}
332
333
334node interrupt-map-entry interrupt-map-entry {
335
336 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 };
337 child-interrupt = 0x1;
338 parent-interrupt = 0x14;
339 parent-device-path = "/pci@0";
340 back -> iodevice;
341}
342
343
344node interrupt-map-entry interrupt-map-entry_1 {
345
346 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 };
347 child-interrupt = 0x2;
348 parent-interrupt = 0x15;
349 parent-device-path = "/pci@0";
350 back -> iodevice;
351}
352
353
354node interrupt-map-entry interrupt-map-entry_2 {
355
356 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 };
357 child-interrupt = 0x3;
358 parent-interrupt = 0x16;
359 parent-device-path = "/pci@0";
360 back -> iodevice;
361}
362
363
364node interrupt-map-entry interrupt-map-entry_3 {
365
366 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 };
367 child-interrupt = 0x4;
368 parent-interrupt = 0x17;
369 parent-device-path = "/pci@0";
370 back -> iodevice;
371}
372
373
374node openboot openboot {
375
376 back -> root;
377 fwd -> interrupt-maps;
378 fwd -> devalias;
379 fwd -> variables;
380}
381
382
383node variables variables {
384
385 back -> openboot;
386 fcode-debug? = "true";
387 boot-device = "vdisk";
388 auto-boot? = "false";
389}
390
391
392node virtual-devices virtual-devices {
393
394 back -> root;
395 name = "virtual-devices";
396 cfg-handle = 0x100;
397 probe-list = 0x1f;
398 compatible = { "SUNW,sun4v-virtual-devices" };
399 device-type = "virtual-devices";
400 fwd -> virtual-device;
401 fwd -> channel-devices;
402 fwd -> virtual-device_4;
403 fwd -> virtual-device_5;
404}
405
406
407node mblock mblock {
408
409 base = T1_FPGA_GUEST_MEMBASE;
410 size = T1_FPGA_GUEST_MEMSIZE;
411 back -> memory;
412}
413
414
415node memory memory {
416
417 memory-generation-id# = 0x0;
418 fwd -> mblock;
419 back -> root;
420}
421
422
423node platform platform {
424
425 banner-name = "Sun Fire T1000";
426 name = "SUNW,Sun-Fire-T1000";
427 watchdog-resolution = 0x3e8;
428 watchdog-max-timeout = 0x757b12c00;
429 max-cpus = 0x20;
430 mac-address = 0x00E0815F2CAB;
431 hostid = 0x83f9edf0;
432 serial# = 0xab4130;
433 stick-frequency = T1_FPGA_STICK_FREQ;
434 back -> root;
435 domaining-enabled = 0x1;
436}
437
438
439node maus maus {
440
441}
442
443
444node cwqs cwqs {
445
446}
447
448
449node virtual-device virtual-device {
450
451 back -> virtual-devices;
452 name = "console";
453 device-type = "serial";
454 intr = 0x1;
455 ino = 0x11;
456 channel# = 0x0;
457 cfg-handle = 0x1;
458 compatible = { "qcn" , "SUNW,sun4v-console" };
459}
460
461
462node devalias devalias {
463
464 back -> openboot;
465 vdisk = "/virtual-devices/disk@0";
466 snet = "/virtual-devices/network@0";
467 ttya = "/virtual-devices/console@1";
468 nvram = "/virtual-devices/nvram@3";
469 ttyb = "/virtual-devices/console@4";
470 scsi = "/pci@7c0/scsi@1";
471 disk = "/pci@7c0/scsi@1/disk@0";
472 virtual-console = "/virtual-devices/console@1";
473}
474
475
476node channel-devices channel-devices {
477
478 back -> virtual-devices;
479 name = "channel-devices";
480 device-type = "channel-devices";
481 compatible = { "SUNW,sun4v-channel-devices" };
482 cfg-handle = 0x200;
483 fwd -> virtual-device_1;
484 fwd -> virtual-device_2;
485 fwd -> virtual-device_3;
486}
487
488
489node channel-endpoints channel-endpoints {
490
491 back -> root;
492 fwd -> channel-endpoint;
493 fwd -> channel-endpoint_1;
494 fwd -> channel-endpoint_2;
495}
496
497
498node channel-endpoint channel-endpoint {
499
500 back -> channel-endpoints;
501 id = 0x2;
502 tx-ino = 0x4;
503 rx-ino = 0x5;
504}
505
506
507node virtual-device virtual-device_1 {
508
509 back -> channel-devices;
510 compatible = { "SUNW,sun4v-channel" };
511 device-type = "serial";
512 name = "virtual-channel";
513 cfg-handle = 0x0;
514 fwd -> virtual-device-port;
515 fwd -> virtual-device-port_1;
516}
517
518
519node virtual-device-port virtual-device-port {
520
521 back -> virtual-device_1;
522 name = "vldc-port";
523 id = 0x0;
524 fwd -> channel-endpoint_1;
525 vldc-svc-name = "hvctl";
526}
527
528
529node channel-endpoint channel-endpoint_1 {
530
531 back -> channel-endpoints;
532 id = 0x0;
533 tx-ino = 0x0;
534 rx-ino = 0x1;
535 back -> virtual-device-port;
536}
537
538
539node virtual-device-port virtual-device-port_1 {
540
541 back -> virtual-device_1;
542 name = "vldc-port";
543 id = 0x1;
544 fwd -> channel-endpoint_2;
545 vldc-svc-name = "ldom-primary";
546}
547
548
549node channel-endpoint channel-endpoint_2 {
550
551 back -> channel-endpoints;
552 id = 0x1;
553 tx-ino = 0x2;
554 rx-ino = 0x3;
555 back -> virtual-device-port_1;
556}
557
558
559node virtual-device virtual-device_2 {
560
561 back -> channel-devices;
562 compatible = { "SUNW,sun4v-console-concentrator" };
563 device-type = "vcc";
564 name = "virtual-console-concentrator";
565 cfg-handle = 0x0;
566}
567
568
569node virtual-device virtual-device_3 {
570
571 back -> channel-devices;
572 compatible = { "SUNW,sun4v-disk-server" };
573 device-type = "vds";
574 name = "virtual-disk-server";
575 cfg-handle = 0x0;
576}
577
578
579node virtual-device virtual-device_4 {
580
581 back -> virtual-devices;
582 name = "disk";
583 fcode-driver-name = "disk-virtual-device";
584 my-space = 0x0;
585 intr = 0x0;
586 ino = 0x0;
587 cfg-handle = 0x0;
588}
589
590
591node virtual-device virtual-device_5 {
592
593 back -> virtual-devices;
594 name = "snet";
595 fcode-driver-name = "net-virtual-device";
596 my-space = 0x0;
597 intr = 0x0;
598 ino = T1_FPGA_SNET_INO;
599 cfg-handle = 0x2;
600}