10Sstevel@tonic-gate/*
20Sstevel@tonic-gate * CDDL HEADER START
30Sstevel@tonic-gate *
40Sstevel@tonic-gate * The contents of this file are subject to the terms of the
50Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only
60Sstevel@tonic-gate * (the "License").  You may not use this file except in compliance
70Sstevel@tonic-gate * with the License.
80Sstevel@tonic-gate *
90Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
100Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
110Sstevel@tonic-gate * See the License for the specific language governing permissions
120Sstevel@tonic-gate * and limitations under the License.
130Sstevel@tonic-gate *
140Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
150Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
160Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
170Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
180Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
190Sstevel@tonic-gate *
200Sstevel@tonic-gate * CDDL HEADER END
210Sstevel@tonic-gate */
220Sstevel@tonic-gate/*
23*464Smb158278 * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
24*464Smb158278 * Use is subject to license terms.
250Sstevel@tonic-gate *
260Sstevel@tonic-gate * #ident	"%Z%%M%	%I%	%E% SMI"
270Sstevel@tonic-gate *
280Sstevel@tonic-gate * create the system board structure
290Sstevel@tonic-gate */
300Sstevel@tonic-gate
310Sstevel@tonic-gateNODE system-board fru
320Sstevel@tonic-gate    PROP Label string r 0 "system-board"
330Sstevel@tonic-gate    NODE pci-slot location
340Sstevel@tonic-gate    	PROP Label string r 0 "PCI1"
350Sstevel@tonic-gate    ENDNODE
360Sstevel@tonic-gate    NODE pci-slot location
370Sstevel@tonic-gate    	PROP Label string r 0 "PCI2"
380Sstevel@tonic-gate    ENDNODE
390Sstevel@tonic-gate    NODE pci-slot location
400Sstevel@tonic-gate    	PROP Label string r 0 "PCI3"
410Sstevel@tonic-gate    ENDNODE
420Sstevel@tonic-gate    NODE cpu-slot location
430Sstevel@tonic-gate    	PROP Slot uint r 4 0
440Sstevel@tonic-gate    	PROP Label string r 0 "cpu0"
450Sstevel@tonic-gate    ENDNODE
460Sstevel@tonic-gate    NODE mem-slot location
470Sstevel@tonic-gate    	PROP Slot uint r 4 0
480Sstevel@tonic-gate    	PROP Label string r 0 "DIMM0"
490Sstevel@tonic-gate    ENDNODE
500Sstevel@tonic-gate    NODE mem-slot location
510Sstevel@tonic-gate      	PROP Slot uint r 4 1
520Sstevel@tonic-gate    	PROP Label string r 0 "DIMM1"
530Sstevel@tonic-gate    ENDNODE
540Sstevel@tonic-gate    NODE mem-slot location
550Sstevel@tonic-gate      	PROP Slot uint r 4 2
560Sstevel@tonic-gate    	PROP Label string r 0 "DIMM2"
570Sstevel@tonic-gate    ENDNODE
580Sstevel@tonic-gate    NODE mem-slot location
590Sstevel@tonic-gate      	PROP Slot uint r 4 3
600Sstevel@tonic-gate    	PROP Label string r 0 "DIMM3"
610Sstevel@tonic-gate    ENDNODE
620Sstevel@tonic-gateENDNODE
630Sstevel@tonic-gate
640Sstevel@tonic-gate/*
650Sstevel@tonic-gate * Create transfer size property
660Sstevel@tonic-gate */
670Sstevel@tonic-gatename:/platform/memory
680Sstevel@tonic-gatePROP TransferSize uint r 4 64
690Sstevel@tonic-gate
700Sstevel@tonic-gate/*
710Sstevel@tonic-gate * set the SlotType for the cpu slots
720Sstevel@tonic-gate */
730Sstevel@tonic-gatename:/frutree/chassis/system-board/cpu-slot
740Sstevel@tonic-gatePROP SlotType string r 0 "cpu"
750Sstevel@tonic-gate
760Sstevel@tonic-gate/*
770Sstevel@tonic-gate * Create fru node for memory module
78*464Smb158278 * Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names.
79*464Smb158278 * Config file parser will ignore REFNODE with invalid device name.
800Sstevel@tonic-gate */
810Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM0
820Sstevel@tonic-gateREFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a0
83*464Smb158278REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0
840Sstevel@tonic-gate
850Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM1
860Sstevel@tonic-gateREFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a2
87*464Smb158278REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2
880Sstevel@tonic-gate
890Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM2
900Sstevel@tonic-gateREFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a4
91*464Smb158278REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4
920Sstevel@tonic-gate
930Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM3
940Sstevel@tonic-gateREFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a6
95*464Smb158278REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6
960Sstevel@tonic-gate
970Sstevel@tonic-gate/*
980Sstevel@tonic-gate * For memory module FRUs that are present, create _seeprom_source
99*464Smb158278 * Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names.
100*464Smb158278 * Config file parser will ignore REFPROP with invalid device name.
1010Sstevel@tonic-gate */
1020Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
1030Sstevel@tonic-gatePROP FRUDataAvailable void r
1040Sstevel@tonic-gateREFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a0
105*464Smb158278REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0
1060Sstevel@tonic-gate
1070Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
1080Sstevel@tonic-gatePROP FRUDataAvailable void r
1090Sstevel@tonic-gateREFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a2
110*464Smb158278REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2
1110Sstevel@tonic-gate
1120Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
1130Sstevel@tonic-gatePROP FRUDataAvailable void r
1140Sstevel@tonic-gateREFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a4
115*464Smb158278REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4
1160Sstevel@tonic-gate
1170Sstevel@tonic-gatename:/frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
1180Sstevel@tonic-gatePROP FRUDataAvailable void r
1190Sstevel@tonic-gateREFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a6
120*464Smb158278REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6
1210Sstevel@tonic-gate
1220Sstevel@tonic-gate/*
1230Sstevel@tonic-gate * Set _fru_parent for memory seeprom devices
124*464Smb158278 * Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names.
125*464Smb158278 * Config file parser will skip to next name entry if the device name is
126*464Smb158278 * invalid.
1270Sstevel@tonic-gate */
1280Sstevel@tonic-gatename:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a0
1290Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
1300Sstevel@tonic-gate
131*464Smb158278name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0
132*464Smb158278REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
133*464Smb158278
1340Sstevel@tonic-gatename:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a2
1350Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
1360Sstevel@tonic-gate
137*464Smb158278name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2
138*464Smb158278REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
139*464Smb158278
1400Sstevel@tonic-gatename:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a4
1410Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
1420Sstevel@tonic-gate
143*464Smb158278name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4
144*464Smb158278REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
145*464Smb158278
1460Sstevel@tonic-gatename:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a6
1470Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
1480Sstevel@tonic-gate
149*464Smb158278name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6
150*464Smb158278REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
151*464Smb158278
1520Sstevel@tonic-gate/*
1530Sstevel@tonic-gate * Populate PCI slots
1540Sstevel@tonic-gate */
1550Sstevel@tonic-gatename:/frutree/chassis/system-board/pci-slot?Label=PCI1
1560Sstevel@tonic-gateREFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=2
1570Sstevel@tonic-gate
1580Sstevel@tonic-gatename:/frutree/chassis/system-board/pci-slot?Label=PCI2
1590Sstevel@tonic-gateREFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=1
1600Sstevel@tonic-gate
1610Sstevel@tonic-gatename:/frutree/chassis/system-board/pci-slot?Label=PCI3
1620Sstevel@tonic-gateREFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=0
1630Sstevel@tonic-gate
1640Sstevel@tonic-gate/*
1650Sstevel@tonic-gate * Create cpu-module fru
1660Sstevel@tonic-gate */
1670Sstevel@tonic-gatename:/frutree/chassis/system-board/cpu-slot?Slot=0
1680Sstevel@tonic-gateREFNODE cpu-module fru WITH _class:/PLATFORM_CLASS/cpu?ID=0
1690Sstevel@tonic-gate
1700Sstevel@tonic-gate/*
1710Sstevel@tonic-gate * Set _fru_parent of /platform to system-board
1720Sstevel@tonic-gate */
1730Sstevel@tonic-gatename:/platform
1740Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board
1750Sstevel@tonic-gate
1760Sstevel@tonic-gate/*
1770Sstevel@tonic-gate * Set _fru_parent of cpu to the cpu-module fru
1780Sstevel@tonic-gate */
1790Sstevel@tonic-gate_class:/PLATFORM_CLASS/cpu?ID=0
1800Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/cpu-slot?Slot=0/cpu-module
1810Sstevel@tonic-gate
1820Sstevel@tonic-gate/*
1830Sstevel@tonic-gate * Set _fru_parent for temperature-device
1840Sstevel@tonic-gate */
1850Sstevel@tonic-gate_class:/upa/pci/pmu/i2c/temperature-device
1860Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/cpu-slot?Slot=0/cpu-module
1870Sstevel@tonic-gate
1880Sstevel@tonic-gate/*
1890Sstevel@tonic-gate * _fru_parent memory modules
1900Sstevel@tonic-gate */
1910Sstevel@tonic-gatename:/platform/memory-controller/memory-module?ID=0
1920Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
1930Sstevel@tonic-gate
1940Sstevel@tonic-gatename:/platform/memory-controller/memory-module?ID=1
1950Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
1960Sstevel@tonic-gate
1970Sstevel@tonic-gatename:/platform/memory-controller/memory-module?ID=2
1980Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
1990Sstevel@tonic-gate
2000Sstevel@tonic-gatename:/platform/memory-controller/memory-module?ID=3
2010Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
2020Sstevel@tonic-gate
2030Sstevel@tonic-gate/*
2040Sstevel@tonic-gate * Set _fru_parent of pci to the pci-card fru
2050Sstevel@tonic-gate */
2060Sstevel@tonic-gate_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=2
2070Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI1/pci-card
2080Sstevel@tonic-gate
2090Sstevel@tonic-gate_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=1
2100Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI2/pci-card
2110Sstevel@tonic-gate
2120Sstevel@tonic-gate_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=0
2130Sstevel@tonic-gateREFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI3/pci-card
2140Sstevel@tonic-gate
215