/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* #ident "%Z%%M% %I% %E% SMI"
*
* create the system board structure
*/
NODE system-board fru
PROP Label string r 0 "system-board"
NODE pci-slot location
PROP Label string r 0 "PCI1"
ENDNODE
NODE pci-slot location
PROP Label string r 0 "PCI2"
ENDNODE
NODE pci-slot location
PROP Label string r 0 "PCI3"
ENDNODE
NODE cpu-slot location
PROP Slot uint r 4 0
PROP Label string r 0 "cpu0"
ENDNODE
NODE mem-slot location
PROP Slot uint r 4 0
PROP Label string r 0 "DIMM0"
ENDNODE
NODE mem-slot location
PROP Slot uint r 4 1
PROP Label string r 0 "DIMM1"
ENDNODE
NODE mem-slot location
PROP Slot uint r 4 2
PROP Label string r 0 "DIMM2"
ENDNODE
NODE mem-slot location
PROP Slot uint r 4 3
PROP Label string r 0 "DIMM3"
ENDNODE
ENDNODE
/*
* Create transfer size property
*/
name:/platform/memory
PROP TransferSize uint r 4 64
/*
* set the SlotType for the cpu slots
*/
name:/frutree/chassis/system-board/cpu-slot
PROP SlotType string r 0 "cpu"
/*
* Create fru node for memory module
* Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names.
* Config file parser will ignore REFNODE with invalid device name.
*/
name:/frutree/chassis/system-board/mem-slot?Label=DIMM0
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a0
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0
name:/frutree/chassis/system-board/mem-slot?Label=DIMM1
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a2
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2
name:/frutree/chassis/system-board/mem-slot?Label=DIMM2
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a4
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4
name:/frutree/chassis/system-board/mem-slot?Label=DIMM3
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a6
REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6
/*
* For memory module FRUs that are present, create _seeprom_source
* Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names.
* Config file parser will ignore REFPROP with invalid device name.
*/
name:/frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
PROP FRUDataAvailable void r
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a0
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0
name:/frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
PROP FRUDataAvailable void r
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a2
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2
name:/frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
PROP FRUDataAvailable void r
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a4
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4
name:/frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
PROP FRUDataAvailable void r
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a6
REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6
/*
* Set _fru_parent for memory seeprom devices
* Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names.
* Config file parser will skip to next name entry if the device name is
* invalid.
*/
name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a0
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a2
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a4
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a6
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
/*
* Populate PCI slots
*/
name:/frutree/chassis/system-board/pci-slot?Label=PCI1
REFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=2
name:/frutree/chassis/system-board/pci-slot?Label=PCI2
REFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=1
name:/frutree/chassis/system-board/pci-slot?Label=PCI3
REFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=0
/*
* Create cpu-module fru
*/
name:/frutree/chassis/system-board/cpu-slot?Slot=0
REFNODE cpu-module fru WITH _class:/PLATFORM_CLASS/cpu?ID=0
/*
* Set _fru_parent of /platform to system-board
*/
name:/platform
REFPROP _fru_parent /frutree/chassis/system-board
/*
* Set _fru_parent of cpu to the cpu-module fru
*/
_class:/PLATFORM_CLASS/cpu?ID=0
REFPROP _fru_parent /frutree/chassis/system-board/cpu-slot?Slot=0/cpu-module
/*
* Set _fru_parent for temperature-device
*/
_class:/upa/pci/pmu/i2c/temperature-device
REFPROP _fru_parent /frutree/chassis/system-board/cpu-slot?Slot=0/cpu-module
/*
* _fru_parent memory modules
*/
name:/platform/memory-controller/memory-module?ID=0
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module
name:/platform/memory-controller/memory-module?ID=1
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module
name:/platform/memory-controller/memory-module?ID=2
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module
name:/platform/memory-controller/memory-module?ID=3
REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module
/*
* Set _fru_parent of pci to the pci-card fru
*/
_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=2
REFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI1/pci-card
_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=1
REFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI2/pci-card
_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=0
REFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI3/pci-card