1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22/* 23 * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 * 26 * #ident "%Z%%M% %I% %E% SMI" 27 * 28 * create the system board structure 29 */ 30 31NODE system-board fru 32 PROP Label string r 0 "system-board" 33 NODE pci-slot location 34 PROP Label string r 0 "PCI1" 35 ENDNODE 36 NODE pci-slot location 37 PROP Label string r 0 "PCI2" 38 ENDNODE 39 NODE pci-slot location 40 PROP Label string r 0 "PCI3" 41 ENDNODE 42 NODE cpu-slot location 43 PROP Slot uint r 4 0 44 PROP Label string r 0 "cpu0" 45 ENDNODE 46 NODE mem-slot location 47 PROP Slot uint r 4 0 48 PROP Label string r 0 "DIMM0" 49 ENDNODE 50 NODE mem-slot location 51 PROP Slot uint r 4 1 52 PROP Label string r 0 "DIMM1" 53 ENDNODE 54 NODE mem-slot location 55 PROP Slot uint r 4 2 56 PROP Label string r 0 "DIMM2" 57 ENDNODE 58 NODE mem-slot location 59 PROP Slot uint r 4 3 60 PROP Label string r 0 "DIMM3" 61 ENDNODE 62ENDNODE 63 64/* 65 * Create transfer size property 66 */ 67name:/platform/memory 68PROP TransferSize uint r 4 64 69 70/* 71 * set the SlotType for the cpu slots 72 */ 73name:/frutree/chassis/system-board/cpu-slot 74PROP SlotType string r 0 "cpu" 75 76/* 77 * Create fru node for memory module 78 * Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names. 79 * Config file parser will ignore REFNODE with invalid device name. 80 */ 81name:/frutree/chassis/system-board/mem-slot?Label=DIMM0 82REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a0 83REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0 84 85name:/frutree/chassis/system-board/mem-slot?Label=DIMM1 86REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a2 87REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2 88 89name:/frutree/chassis/system-board/mem-slot?Label=DIMM2 90REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a4 91REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4 92 93name:/frutree/chassis/system-board/mem-slot?Label=DIMM3 94REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm?UnitAddress=0,a6 95REFNODE mem-module fru WITH /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6 96 97/* 98 * For memory module FRUs that are present, create _seeprom_source 99 * Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names. 100 * Config file parser will ignore REFPROP with invalid device name. 101 */ 102name:/frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module 103PROP FRUDataAvailable void r 104REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a0 105REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0 106 107name:/frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module 108PROP FRUDataAvailable void r 109REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a2 110REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2 111 112name:/frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module 113PROP FRUDataAvailable void r 114REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a4 115REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4 116 117name:/frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module 118PROP FRUDataAvailable void r 119REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm?UnitAddress=0,a6 120REFPROP _seeprom_source /platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6 121 122/* 123 * Set _fru_parent for memory seeprom devices 124 * Use both OBP 4.10.6 (dimm-spd) and older (dimm) device names. 125 * Config file parser will skip to next name entry if the device name is 126 * invalid. 127 */ 128name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a0 129REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module 130 131name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a0 132REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module 133 134name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a2 135REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module 136 137name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a2 138REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module 139 140name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a4 141REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module 142 143name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a4 144REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module 145 146name:/platform/pci/pmu/i2c/dimm?UnitAddress=0,a6 147REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module 148 149name:/platform/pci/pmu/i2c/dimm-spd?UnitAddress=0,a6 150REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module 151 152/* 153 * Populate PCI slots 154 */ 155name:/frutree/chassis/system-board/pci-slot?Label=PCI1 156REFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=2 157 158name:/frutree/chassis/system-board/pci-slot?Label=PCI2 159REFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=1 160 161name:/frutree/chassis/system-board/pci-slot?Label=PCI3 162REFNODE pci-card fru WITH _class:/upa/pci/pci/picl?DeviceID=0 163 164/* 165 * Create cpu-module fru 166 */ 167name:/frutree/chassis/system-board/cpu-slot?Slot=0 168REFNODE cpu-module fru WITH _class:/PLATFORM_CLASS/cpu?ID=0 169 170/* 171 * Set _fru_parent of /platform to system-board 172 */ 173name:/platform 174REFPROP _fru_parent /frutree/chassis/system-board 175 176/* 177 * Set _fru_parent of cpu to the cpu-module fru 178 */ 179_class:/PLATFORM_CLASS/cpu?ID=0 180REFPROP _fru_parent /frutree/chassis/system-board/cpu-slot?Slot=0/cpu-module 181 182/* 183 * Set _fru_parent for temperature-device 184 */ 185_class:/upa/pci/pmu/i2c/temperature-device 186REFPROP _fru_parent /frutree/chassis/system-board/cpu-slot?Slot=0/cpu-module 187 188/* 189 * _fru_parent memory modules 190 */ 191name:/platform/memory-controller/memory-module?ID=0 192REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM0/mem-module 193 194name:/platform/memory-controller/memory-module?ID=1 195REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM1/mem-module 196 197name:/platform/memory-controller/memory-module?ID=2 198REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM2/mem-module 199 200name:/platform/memory-controller/memory-module?ID=3 201REFPROP _fru_parent /frutree/chassis/system-board/mem-slot?Label=DIMM3/mem-module 202 203/* 204 * Set _fru_parent of pci to the pci-card fru 205 */ 206_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=2 207REFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI1/pci-card 208 209_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=1 210REFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI2/pci-card 211 212_class:/PLATFORM_CLASS/pci/pci/picl?DeviceID=0 213REFPROP _fru_parent /frutree/chassis/system-board/pci-slot?Label=PCI3/pci-card 214 215