* 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"
fwd -> channel-endpoints;
node exec-unit exec-unit {
node exec-unit exec-unit_1 {
type = { "integer" , "integer-load" , "integer-store" , "fp-load" , "fp-store" };
node exec-unit exec-unit_2 {
node exec-unit exec-unit_3 {
type = { "integer" , "integer-load" , "integer-store" , "fp-load" , "fp-store" };
isalist = { "sparcv9" , "sparcv8plus" , "sparcv8" , "sparcv8-fsmuld" , "sparcv7" , "sparc" };
clock-frequency = T1_FPGA_STICK_FREQ;
compatible = { "SUNW,UltraSPARC-T1" , "SUNW,sun4v-cpu" , "sun4v" };
q-nonresumable-#bits = 0x8;
mmu-#shared-contexts = 0x2;
mmu-page-size-list = 0x2b;
isalist = { "sparcv9" , "sparcv8plus" , "sparcv8" , "sparcv8-fsmuld" , "sparcv7" , "sparc" };
clock-frequency = T1_FPGA_STICK_FREQ;
compatible = { "SUNW,UltraSPARC-T1" , "SUNW,sun4v-cpu" , "sun4v" };
q-nonresumable-#bits = 0x8;
mmu-#shared-contexts = 0x2;
mmu-page-size-list = 0x2b;
node exec-unit exec-unit_4 {
type = { "instn" , "data" };
compatible = { "SUNW,sun4v-pci" };
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 };
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-ranges = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 };
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-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 {
node interrupt-map interrupt-map {
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 };
node interrupt interrupt {
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 {
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 {
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 {
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 };
parent-device-path = "/pci@0";
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 };
parent-device-path = "/pci@0";
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 };
parent-device-path = "/pci@0";
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 };
parent-device-path = "/pci@0";
node variables variables {
node virtual-devices virtual-devices {
name = "virtual-devices";
compatible = { "SUNW,sun4v-virtual-devices" };
device-type = "virtual-devices";
base = T1_FPGA_GUEST_MEMBASE;
size = T1_FPGA_GUEST_MEMSIZE;
memory-generation-id# = 0x0;
banner-name = "Sun Fire T1000";
name = "SUNW,Sun-Fire-T1000";
watchdog-resolution = 0x3e8;
watchdog-max-timeout = 0x757b12c00;
mac-address = 0x00E0815F2CAB;
stick-frequency = T1_FPGA_STICK_FREQ;
node virtual-device virtual-device {
compatible = { "qcn" , "SUNW,sun4v-console" };
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 {
name = "channel-devices";
device-type = "channel-devices";
compatible = { "SUNW,sun4v-channel-devices" };
node channel-endpoints channel-endpoints {
fwd -> channel-endpoint_1;
fwd -> channel-endpoint_2;
node channel-endpoint channel-endpoint {
back -> channel-endpoints;
node virtual-device virtual-device_1 {
compatible = { "SUNW,sun4v-channel" };
name = "virtual-channel";
fwd -> virtual-device-port;
fwd -> virtual-device-port_1;
node virtual-device-port virtual-device-port {
back -> virtual-device_1;
fwd -> channel-endpoint_1;
node channel-endpoint channel-endpoint_1 {
back -> channel-endpoints;
back -> virtual-device-port;
node virtual-device-port virtual-device-port_1 {
back -> virtual-device_1;
fwd -> channel-endpoint_2;
vldc-svc-name = "ldom-primary";
node channel-endpoint channel-endpoint_2 {
back -> channel-endpoints;
back -> virtual-device-port_1;
node virtual-device virtual-device_2 {
compatible = { "SUNW,sun4v-console-concentrator" };
name = "virtual-console-concentrator";
node virtual-device virtual-device_3 {
compatible = { "SUNW,sun4v-disk-server" };
name = "virtual-disk-server";
node virtual-device virtual-device_4 {
fcode-driver-name = "disk-virtual-device";
node virtual-device virtual-device_5 {
fcode-driver-name = "net-virtual-device";