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