Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / t1_fpga / src / xilinx / configs / 1c1t_guest.desc
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* The machine description files are derived from machine description
* binaries in OpenSPARC T2 legion simulation directory.
*/
#include "xilinx_t1_system_config.h"
node root root {
content-version = "1.0";
fwd -> memory;
fwd -> cpus;
fwd -> phys_io;
fwd -> platform;
fwd -> openboot;
fwd -> virtual-devices;
reset-reason = 0x0;
fwd -> maus;
fwd -> cwqs;
md-generation# = 0x1;
fwd -> channel-endpoints;
}
node cache cache {
level = 0x1;
type = { "instn" };
line-size = 0x20;
size = 0x4000;
associativity = 0x4;
back -> exec-unit;
fwd -> cache_2;
}
node cache cache_1 {
level = 0x1;
type = { "data" };
line-size = 0x10;
size = 0x2000;
associativity = 0x4;
back -> exec-unit_1;
fwd -> cache_2;
}
node tlb tlb {
level = 0x1;
type = { "instn" };
entries = 0x40;
associativity = 0x0;
page-size-list = 0x2b;
back -> exec-unit;
}
node tlb tlb_1 {
level = 0x1;
type = { "data" };
entries = 0x80;
associativity = 0x0;
page-size-list = 0x2b;
back -> exec-unit_1;
}
node exec-unit exec-unit {
type = { "ifetch" };
back -> cpu;
fwd -> cache;
fwd -> tlb;
}
node exec-unit exec-unit_1 {
type = { "integer" , "integer-load" , "integer-store" , "fp-load" , "fp-store" };
back -> cpu;
fwd -> cache_1;
fwd -> tlb_1;
}
node cpu cpu {
id = 0x0;
pid = 0x0;
serial# = 0x0;
isalist = { "sparcv9" , "sparcv8plus" , "sparcv8" , "sparcv8-fsmuld" , "sparcv7" , "sparc" };
clock-frequency = T1_FPGA_STICK_FREQ;
compatible = { "SUNW,UltraSPARC-T1" , "SUNW,sun4v-cpu" , "sun4v" };
nwins = 0x8;
mmu-type = "sun4v";
q-cpu-mondo-#bits = 0x8;
q-dev-mondo-#bits = 0x8;
q-resumable-#bits = 0x8;
q-nonresumable-#bits = 0x8;
mmu-max-#tsbs = 0x4;
mmu-#context-bits = 0xd;
mmu-#shared-contexts = 0x2;
mmu-page-size-list = 0x2b;
mmu-#va-bits = 0x30;
back -> cpus;
fwd -> exec-unit;
fwd -> exec-unit_1;
fwd -> exec-unit_2;
}
node exec-unit exec-unit_2 {
type = { "fp" };
back -> cpu;
}
node cpus cpus {
fwd -> cpu;
back -> root;
}
node cache cache_2 {
level = 0x2;
type = { "instn" , "data" };
line-size = 0x40;
size = 0x300000;
associativity = 0xC;
back -> cache_1;
back -> cache;
}
node phys_io phys_io {
back -> root;
fwd -> iodevice;
}
node iodevice iodevice {
back -> phys_io;
name = "pci";
pseudonym = "pci";
disabled = 0x0;
device-type = "pciex";
compatible = { "SUNW,sun4v-pci" };
cfg-handle = 0x0;
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 };
virtual-dma = { 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 };
ino-bitmap = 0xf;
probe-list = "0";
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 };
#msi = 0x100;
msi-data-mask = 0xff;
msi-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 };
msi-eq-size = 0x80;
msix-data-width = 0x20;
#msi-eqs = 0x24;
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 };
interrupts = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3f , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e };
#interrupt-cells = 0x1;
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 };
bus-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff };
fwd -> interrupt-map-entry;
fwd -> interrupt-map-entry_1;
fwd -> interrupt-map-entry_2;
fwd -> interrupt-map-entry_3;
}
node interrupt-maps interrupt-maps {
back -> openboot;
fwd -> interrupt-map;
}
node interrupt-map interrupt-map {
back -> interrupt-maps;
dev = "/pci@0";
parent = "/pci@0";
intr-cells = 0x1;
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 };
interrupts = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3f , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x3e };
fwd -> interrupt;
fwd -> interrupt_1;
fwd -> interrupt_2;
fwd -> interrupt_3;
}
node interrupt interrupt {
back -> interrupt-map;
intr = 0x1;
ino = 0x14;
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 };
}
node interrupt interrupt_1 {
back -> interrupt-map;
intr = 0x2;
ino = 0x15;
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 };
}
node interrupt interrupt_2 {
back -> interrupt-map;
intr = 0x3;
ino = 0x16;
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 };
}
node interrupt interrupt_3 {
back -> interrupt-map;
intr = 0x4;
ino = 0x17;
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 };
}
node interrupt-map-entry interrupt-map-entry {
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 };
child-interrupt = 0x1;
parent-interrupt = 0x14;
parent-device-path = "/pci@0";
back -> iodevice;
}
node interrupt-map-entry interrupt-map-entry_1 {
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 };
child-interrupt = 0x2;
parent-interrupt = 0x15;
parent-device-path = "/pci@0";
back -> iodevice;
}
node interrupt-map-entry interrupt-map-entry_2 {
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 };
child-interrupt = 0x3;
parent-interrupt = 0x16;
parent-device-path = "/pci@0";
back -> iodevice;
}
node interrupt-map-entry interrupt-map-entry_3 {
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 };
child-interrupt = 0x4;
parent-interrupt = 0x17;
parent-device-path = "/pci@0";
back -> iodevice;
}
node openboot openboot {
back -> root;
fwd -> interrupt-maps;
fwd -> devalias;
fwd -> variables;
}
node variables variables {
back -> openboot;
fcode-debug? = "true";
boot-device = "vdisk";
auto-boot? = "false";
}
node virtual-devices virtual-devices {
back -> root;
name = "virtual-devices";
cfg-handle = 0x100;
probe-list = 0x1f;
compatible = { "SUNW,sun4v-virtual-devices" };
device-type = "virtual-devices";
fwd -> virtual-device;
fwd -> channel-devices;
fwd -> virtual-device_4;
fwd -> virtual-device_5;
}
node mblock mblock {
base = T1_FPGA_GUEST_MEMBASE;
size = T1_FPGA_GUEST_MEMSIZE;
back -> memory;
}
node memory memory {
memory-generation-id# = 0x0;
fwd -> mblock;
back -> root;
}
node platform platform {
banner-name = "Sun Fire T1000";
name = "SUNW,Sun-Fire-T1000";
watchdog-resolution = 0x3e8;
watchdog-max-timeout = 0x757b12c00;
max-cpus = 0x20;
mac-address = 0x00E0815F2CAB;
hostid = 0x83f9edf0;
serial# = 0xab4130;
stick-frequency = T1_FPGA_STICK_FREQ;
back -> root;
domaining-enabled = 0x1;
}
node maus maus {
}
node cwqs cwqs {
}
node virtual-device virtual-device {
back -> virtual-devices;
name = "console";
device-type = "serial";
intr = 0x1;
ino = 0x11;
channel# = 0x0;
cfg-handle = 0x1;
compatible = { "qcn" , "SUNW,sun4v-console" };
}
node devalias devalias {
back -> openboot;
vdisk = "/virtual-devices/disk@0";
snet = "/virtual-devices/network@0";
ttya = "/virtual-devices/console@1";
nvram = "/virtual-devices/nvram@3";
ttyb = "/virtual-devices/console@4";
scsi = "/pci@7c0/scsi@1";
disk = "/pci@7c0/scsi@1/disk@0";
virtual-console = "/virtual-devices/console@1";
}
node channel-devices channel-devices {
back -> virtual-devices;
name = "channel-devices";
device-type = "channel-devices";
compatible = { "SUNW,sun4v-channel-devices" };
cfg-handle = 0x200;
fwd -> virtual-device_1;
fwd -> virtual-device_2;
fwd -> virtual-device_3;
}
node channel-endpoints channel-endpoints {
back -> root;
fwd -> channel-endpoint;
fwd -> channel-endpoint_1;
fwd -> channel-endpoint_2;
}
node channel-endpoint channel-endpoint {
back -> channel-endpoints;
id = 0x2;
tx-ino = 0x4;
rx-ino = 0x5;
}
node virtual-device virtual-device_1 {
back -> channel-devices;
compatible = { "SUNW,sun4v-channel" };
device-type = "serial";
name = "virtual-channel";
cfg-handle = 0x0;
fwd -> virtual-device-port;
fwd -> virtual-device-port_1;
}
node virtual-device-port virtual-device-port {
back -> virtual-device_1;
name = "vldc-port";
id = 0x0;
fwd -> channel-endpoint_1;
vldc-svc-name = "hvctl";
}
node channel-endpoint channel-endpoint_1 {
back -> channel-endpoints;
id = 0x0;
tx-ino = 0x0;
rx-ino = 0x1;
back -> virtual-device-port;
}
node virtual-device-port virtual-device-port_1 {
back -> virtual-device_1;
name = "vldc-port";
id = 0x1;
fwd -> channel-endpoint_2;
vldc-svc-name = "ldom-primary";
}
node channel-endpoint channel-endpoint_2 {
back -> channel-endpoints;
id = 0x1;
tx-ino = 0x2;
rx-ino = 0x3;
back -> virtual-device-port_1;
}
node virtual-device virtual-device_2 {
back -> channel-devices;
compatible = { "SUNW,sun4v-console-concentrator" };
device-type = "vcc";
name = "virtual-console-concentrator";
cfg-handle = 0x0;
}
node virtual-device virtual-device_3 {
back -> channel-devices;
compatible = { "SUNW,sun4v-disk-server" };
device-type = "vds";
name = "virtual-disk-server";
cfg-handle = 0x0;
}
node virtual-device virtual-device_4 {
back -> virtual-devices;
name = "disk";
fcode-driver-name = "disk-virtual-device";
my-space = 0x0;
intr = 0x0;
ino = 0x0;
cfg-handle = 0x0;
}
node virtual-device virtual-device_5 {
back -> virtual-devices;
name = "snet";
fcode-driver-name = "net-virtual-device";
my-space = 0x0;
intr = 0x0;
ino = T1_FPGA_SNET_INO;
cfg-handle = 0x2;
}