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 (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 *
26 * ident	"%Z%%M%	%I%	%E% SMI"
27 *
28 * This file creates the system board structure
29 */
30
31/*
32 * define a macro to force a #ident line into the output stream
33 * otherwise cpp removes it. Use #ifndef because of #included definitions.
34 */
35#ifndef id
36#define	id(s)	#ident s
37#endif
38id("%Z%%M% %I%     %E% SMI")
39
40/*
41 * Motherboard properties
42 */
43name:/frutree/chassis/MB
44    NODE system-board fru
45	NODE SC location
46    	    PROP Label string r 0 "SC"
47	    NODE sc fru
48	    ENDNODE
49	ENDNODE
50        NODE P0 location
51            PROP SlotType string r 0 "cpu"
52            PROP Label string r 0 "P0"
53        ENDNODE
54        NODE P1 location
55            PROP SlotType string r 0 "cpu"
56            PROP Label string r 0 "P1"
57        ENDNODE
58	NODE HDDBP location
59    	    PROP Label string r 0 "HDDBP"
60       	    REFNODE disk-backplane-1 fru WITH /platform?PlatformName=SUNW,Sun-Fire-V215
61       	    REFNODE disk-backplane-3 fru WITH /platform?PlatformName=SUNW,Sun-Fire-V245
62	ENDNODE
63        NODE RMD0 location
64            PROP SlotType string r 0 "dvd-slot"
65            PROP Label string r 0 "RMD0"
66        ENDNODE
67	NODE SCC location
68    	    PROP Label string r 0 "SCC"
69	    NODE system-config-chip fru
70	    ENDNODE
71	ENDNODE
72    	NODE RISER-RIGHT location
73    	    PROP Label string r 0 "RISER-RIGHT"
74    	ENDNODE
75    	NODE RISER-LEFT location
76    	    PROP Label string r 0 "RISER-LEFT"
77    	ENDNODE
78	NODE USB0 location
79            PROP Label string r 0 "USB0"
80        ENDNODE
81        NODE USB1 location
82            PROP Label string r 0 "USB1"
83        ENDNODE
84	NODE FIOB location
85    	    PROP Label string r 0 "FIOB"
86	    REFNODE front-io-board-1 fru WITH /platform?PlatformName=SUNW,Sun-Fire-V215
87	    REFNODE front-io-board-2 fru WITH /platform?PlatformName=SUNW,Sun-Fire-V245
88	ENDNODE
89	NODE BATTERY location
90    	    PROP Label string r 0 "BATTERY"
91	    NODE battery fru
92	    ENDNODE
93	ENDNODE
94    ENDNODE
95
96/*
97 * motherboard seeprom source
98 */
99name:/frutree/chassis/MB/system-board
100	PROP FRUDataAvailable void r
101	REFPROP _seeprom_source name:/platform/i2c@1f,530000/motherboard-fru-prom@0,a2
102
103name:/platform/i2c@1f,530000/motherboard-fru-prom@0,a2
104	REFPROP _fru_parent /frutree/chassis/MB/system-board
105
106/*
107 * Processor 0
108 */
109name:/frutree/chassis/MB/system-board/P0
110	REFNODE cpu fru WITH name:/platform/SUNW,UltraSPARC-IIIi+@0,0
111	REFNODE cpu fru WITH name:/platform/SUNW,UltraSPARC-IIIi@0,0
112name:/frutree/chassis/MB/system-board/P0/cpu
113        NODE B0 location
114            PROP Label string r 0 "B0"
115            NODE bank fru
116                NODE D0 location
117                ENDNODE
118                NODE D1 location
119                ENDNODE
120            ENDNODE
121        ENDNODE
122        NODE B1 location
123            PROP Label string r 0 "B1"
124            NODE bank fru
125                NODE D0 location
126                ENDNODE
127                NODE D1 location
128                ENDNODE
129            ENDNODE
130        ENDNODE
131
132/*
133 * Processor 1
134 */
135name:/frutree/chassis/MB/system-board/P1
136	REFNODE cpu fru WITH name:/platform/SUNW,UltraSPARC-IIIi+@1,0
137	REFNODE cpu fru WITH name:/platform/SUNW,UltraSPARC-IIIi@1,0
138name:/frutree/chassis/MB/system-board/P1/cpu
139        NODE B0 location
140            PROP Label string r 0 "B0"
141            NODE bank fru
142                NODE D0 location
143                ENDNODE
144                NODE D1 location
145                ENDNODE
146            ENDNODE
147        ENDNODE
148        NODE B1 location
149            PROP Label string r 0 "B1"
150            NODE bank fru
151                NODE D0 location
152                ENDNODE
153                NODE D1 location
154                ENDNODE
155            ENDNODE
156        ENDNODE
157/*
158 * Processor 0 memory
159 */
160name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D0
161	PROP SlotType string r 0 "memory-module"
162	PROP Label string r 0 "D0"
163name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D1
164	PROP SlotType string r 0 "memory-module"
165	PROP Label string r 0 "D1"
166name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D0
167	PROP SlotType string r 0 "memory-module"
168	PROP Label string r 0 "D0"
169name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D1
170	PROP SlotType string r 0 "memory-module"
171	PROP Label string r 0 "D1"
172
173/*
174 * Processor 1 memory
175 */
176name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D0
177	PROP SlotType string r 0 "memory-module"
178	PROP Label string r 0 "D0"
179name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D1
180	PROP SlotType string r 0 "memory-module"
181	PROP Label string r 0 "D1"
182name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D0
183	PROP SlotType string r 0 "memory-module"
184	PROP Label string r 0 "D0"
185name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D1
186	PROP SlotType string r 0 "memory-module"
187	PROP Label string r 0 "D1"
188
189/*
190 * Dimm nodes
191 */
192name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D0
193	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,e0
194name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D1
195	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,e2
196name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D0
197	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,e4
198name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D1
199	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,e6
200name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D0
201	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,e8
202name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D1
203	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,ea
204name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D0
205	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,ec
206name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D1
207	REFNODE mem-module fru WITH name:/platform/i2c@1f,530000/dimm-spd@0,ee
208
209/* Populate all possible nodes in the devtree with a status of "okay".
210 * This will get overridden by ASR.  If the dimm slots are not fully
211 * populated then no extra nodes or properties are created.
212 */
213name:/platform/memory-controller@0,0/memory-module-group?ID=0/memory-module?ID=0
214	PROP status string r 0 "okay"
215name:/platform/memory-controller@0,0/memory-module-group?ID=0/memory-module?ID=1
216	PROP status string r 0 "okay"
217name:/platform/memory-controller@0,0/memory-module-group?ID=1/memory-module?ID=0
218	PROP status string r 0 "okay"
219name:/platform/memory-controller@0,0/memory-module-group?ID=1/memory-module?ID=1
220	PROP status string r 0 "okay"
221name:/platform/memory-controller@1,0/memory-module-group?ID=0/memory-module?ID=0
222	PROP status string r 0 "okay"
223name:/platform/memory-controller@1,0/memory-module-group?ID=0/memory-module?ID=1
224	PROP status string r 0 "okay"
225name:/platform/memory-controller@1,0/memory-module-group?ID=1/memory-module?ID=0
226	PROP status string r 0 "okay"
227name:/platform/memory-controller@1,0/memory-module-group?ID=1/memory-module?ID=1
228	PROP status string r 0 "okay"
229
230/*
231 * DIMM seeprom sources
232 */
233name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D0/mem-module
234	PROP FRUDataAvailable void r
235	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,e0
236name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D1/mem-module
237	PROP FRUDataAvailable void r
238	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,e2
239name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D0/mem-module
240	PROP FRUDataAvailable void r
241	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,e4
242name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D1/mem-module
243	PROP FRUDataAvailable void r
244	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,e6
245name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D0/mem-module
246	PROP FRUDataAvailable void r
247	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,e8
248name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D1/mem-module
249	PROP FRUDataAvailable void r
250	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,ea
251name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D0/mem-module
252	PROP FRUDataAvailable void r
253	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,ec
254name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D1/mem-module
255	PROP FRUDataAvailable void r
256	REFPROP _seeprom_source name:/platform/i2c@1f,530000/dimm-spd@0,ee
257
258/*
259 * DIMM FRU parents
260 */
261name:/platform/i2c@1f,530000/dimm-spd@0,e0
262	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D0/mem-module
263name:/platform/i2c@1f,530000/dimm-spd@0,e2
264	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D1/mem-module
265name:/platform/i2c@1f,530000/dimm-spd@0,e4
266	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D0/mem-module
267name:/platform/i2c@1f,530000/dimm-spd@0,e6
268	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D1/mem-module
269name:/platform/i2c@1f,530000/dimm-spd@0,e8
270	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D0/mem-module
271name:/platform/i2c@1f,530000/dimm-spd@0,ea
272	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D1/mem-module
273name:/platform/i2c@1f,530000/dimm-spd@0,ec
274	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D0/mem-module
275name:/platform/i2c@1f,530000/dimm-spd@0,ee
276	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D1/mem-module
277
278name:/platform/SUNW,UltraSPARC-IIIi+@0,0
279	REFPROP _fru_parent /frutree/chassis/MB/system-board/P0/cpu
280
281name:/platform/SUNW,UltraSPARC-IIIi+@1,0
282	REFPROP _fru_parent /frutree/chassis/MB/system-board/P1/cpu
283
284name:/platform/SUNW,UltraSPARC-IIIi@0,0
285	REFPROP _fru_parent /frutree/chassis/MB/system-board/P0/cpu
286
287name:/platform/SUNW,UltraSPARC-IIIi@1,0
288	REFPROP _fru_parent /frutree/chassis/MB/system-board/P1/cpu
289/*
290 * DIMM parents
291 */
292name:/platform/memory-controller@0,0/memory-module-group?ID=0/memory-module?ID=0
293	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D0/mem-module
294name:/platform/memory-controller@0,0/memory-module-group?ID=0/memory-module?ID=1
295	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B0/bank/D1/mem-module
296name:/platform/memory-controller@0,0/memory-module-group?ID=1/memory-module?ID=0
297	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D0/mem-module
298name:/platform/memory-controller@0,0/memory-module-group?ID=1/memory-module?ID=1
299	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P0/cpu/B1/bank/D1/mem-module
300name:/platform/memory-controller@1,0/memory-module-group?ID=0/memory-module?ID=0
301	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D0/mem-module
302name:/platform/memory-controller@1,0/memory-module-group?ID=0/memory-module?ID=1
303	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B0/bank/D1/mem-module
304name:/platform/memory-controller@1,0/memory-module-group?ID=1/memory-module?ID=0
305	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D0/mem-module
306name:/platform/memory-controller@1,0/memory-module-group?ID=1/memory-module?ID=1
307	REFPROP _fru_parent name:/frutree/chassis/MB/system-board/P1/cpu/B1/bank/D1/mem-module
308/*
309 * create reference properties for motherboard pci devices
310 */
311_class:/jbus/pciex@1e,600000
312	REFPROP _fru_parent name:/frutree/chassis/MB/system-board
313_class:/jbus/pciex@1f,700000
314	REFPROP _fru_parent name:/frutree/chassis/MB/system-board
315
316/*
317 * Front IO Board 1U
318 */
319name:/frutree/chassis/MB/system-board/FIOB/front-io-board-1
320	NODE USB2 location
321	    PROP Label string r 0 "USB2"
322	ENDNODE
323	NODE FLEDB location
324	    PROP Label string r 0 "FLEDB"
325	    NODE front-led-board fru
326	    ENDNODE
327	ENDNODE
328	NODE FCB0 location
329	    PROP Label string r 0 "FCB0"
330	    NODE fan-connector-board fru
331	    ENDNODE
332	ENDNODE
333	NODE FCB1 location
334	    PROP Label string r 0 "FCB1"
335	    NODE fan-connector-board fru
336	    ENDNODE
337	ENDNODE
338
339/*
340 * Front IO Board 2U
341 */
342
343name:/frutree/chassis/MB/system-board/FIOB/front-io-board-2
344	NODE USB2 location
345	    PROP Label string r 0 "USB2"
346	ENDNODE
347	NODE USB3 location
348	    PROP Label string r 0 "USB3"
349	ENDNODE
350	NODE FLEDB location
351	    PROP Label string r 0 "FLEDB"
352	    NODE front-led-board fru
353	    ENDNODE
354	ENDNODE
355	NODE FCB0 location
356	    PROP Label string r 0 "FCB0"
357	    NODE fan-connector-board fru
358	    ENDNODE
359	ENDNODE
360	NODE FCB1 location
361	    PROP Label string r 0 "FCB1"
362	    NODE fan-connector-board fru
363	    ENDNODE
364	ENDNODE
365
366/*
367 * PDB nodes for 1U and 2U. Note that we should have only one of these
368 * two nodes for each platform (1U/2U).
369 */
370name:/frutree/chassis/PDB/power-distribution-board
371	REFNODE FT6 location WITH /platform?PlatformName=SUNW,Sun-Fire-V215
372	REFNODE HDDFB location WITH /platform?PlatformName=SUNW,Sun-Fire-V245
373
374name:/frutree/chassis/PDB/power-distribution-board/HDDFB
375	PROP Label string r 0 "HDDFB"
376	NODE fan-connector-board fru
377	ENDNODE
378
379/*
380 * Add dvdrom fru nodes for disks which are present
381 */
382name:/frutree/chassis/MB/system-board/RMD0
383	REFNODE removable-media fru WITH name:/platform/pci@1e,600000/pci@0/pci@1/pci@0/ide@1f/sd@0,0
384
385/*
386 * HDDBP
387 */
388name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-1
389	NODE HDD0 location
390	    PROP SlotType string r 0 "disk-slot"
391	    PROP Label string r 0 "HDD0"
392	ENDNODE
393	NODE HDD1 location
394	    PROP SlotType string r 0 "disk-slot"
395	    PROP Label string r 0 "HDD1"
396	ENDNODE
397
398name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-1
399	PROP FRUDataAvailable void r
400	REFPROP _seeprom_source name:/platform/i2c@1f,530000/sasbp-fru-prom@0,64
401
402name:/platform/i2c@1f,530000/sasbp-fru-prom@0,64
403	REFPROP _fru_parent /frutree/chassis/MB/system-board/HDDBP/disk-backplane-1
404
405name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-3
406	NODE HDD0 location
407	    PROP SlotType string r 0 "disk-slot"
408	    PROP Label string r 0 "HDD0"
409	ENDNODE
410	NODE HDD1 location
411	    PROP SlotType string r 0 "disk-slot"
412	    PROP Label string r 0 "HDD1"
413	ENDNODE
414	NODE HDD2 location
415	    PROP SlotType string r 0 "disk-slot"
416	    PROP Label string r 0 "HDD2"
417	ENDNODE
418	NODE HDD3 location
419	    PROP SlotType string r 0 "disk-slot"
420	    PROP Label string r 0 "HDD3"
421	ENDNODE
422
423name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-3
424	PROP FRUDataAvailable void r
425	REFPROP _seeprom_source name:/platform/i2c@1f,530000/sasbp-fru-prom@0,64
426
427name:/platform/i2c@1f,530000/sasbp-fru-prom@0,64
428	REFPROP _fru_parent /frutree/chassis/MB/system-board/HDDBP/disk-backplane-3
429
430/* add disk fru nodes for disks which are present */
431name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-1/HDD0
432	REFNODE disk fru WITH name:/platform/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
433name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-1/HDD1
434	REFNODE disk fru WITH name:/platform/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
435name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-3/HDD0
436	REFNODE disk fru WITH name:/platform/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
437name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-3/HDD1
438	REFNODE disk fru WITH name:/platform/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
439name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-3/HDD2
440	REFNODE disk fru WITH name:/platform/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@2,0
441name:/frutree/chassis/MB/system-board/HDDBP/disk-backplane-3/HDD3
442	REFNODE disk fru WITH name:/platform/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@3,0
443
444
445/*
446 * System Fans for Seattle 1U
447 */
448#ifndef FCB0_1U
449#define FCB0_1U /frutree/chassis/MB/system-board/FIOB/front-io-board-1/FCB0/fan-connector-board
450#endif
451
452#ifndef FCB1_1U
453#define FCB1_1U /frutree/chassis/MB/system-board/FIOB/front-io-board-1/FCB1/fan-connector-board
454#endif
455
456#ifndef PDB_1U
457#define PDB_1U /frutree/chassis/PDB/power-distribution-board
458#endif
459
460/*
461 * As per FSD rev 0.19, in Seattle 1U, two fans are integrated into
462 * a single assembly and share a connector. We assume therefore that
463 * every fan tray in Seattle 1U contains both fans, so the presence
464 * of either fan node (under RMCLOMV) is indicative of the presence
465 * of the containing fan tray. In other words, either we have the
466 * fan tray with both fans present, or we have no fan tray at all.
467 */
468name:FCB0_1U
469    NODE FT0 location
470	PROP Label string r 0 "FT0"
471	PROP SlotType string r 0 "fan-tray"
472	REFNODE fan-tray fru WITH name:RMCLOMV/ft0_f0
473    ENDNODE
474    NODE FT1 location
475	PROP Label string r 0 "FT1"
476	PROP SlotType string r 0 "fan-tray"
477	REFNODE fan-tray fru WITH name:RMCLOMV/ft1_f0
478    ENDNODE
479    NODE FT2 location
480	PROP Label string r 0 "FT2"
481	PROP SlotType string r 0 "fan-tray"
482	REFNODE fan-tray fru WITH name:RMCLOMV/ft2_f0
483    ENDNODE
484
485name:FCB1_1U
486    NODE FT3 location
487	PROP Label string r 0 "FT3"
488	PROP SlotType string r 0 "fan-tray"
489	REFNODE fan-tray fru WITH name:RMCLOMV/ft3_f0
490    ENDNODE
491    NODE FT4 location
492	PROP Label string r 0 "FT4"
493	PROP SlotType string r 0 "fan-tray"
494	REFNODE fan-tray fru WITH name:RMCLOMV/ft4_f0
495    ENDNODE
496    NODE FT5 location
497	PROP Label string r 0 "FT5"
498	PROP SlotType string r 0 "fan-tray"
499	REFNODE fan-tray fru WITH name:RMCLOMV/ft5_f0
500    ENDNODE
501
502name:PDB_1U/FT6
503    PROP Label string r 0 "FT6"
504    PROP SlotType string r 0 "fan-tray"
505    REFNODE fan-tray fru WITH name:RMCLOMV/pdb_ft6_f0
506
507/*
508 * Create fan nodes for Seattle 1U
509 *
510 * Note that although we could create the F0 and F1 nodes on each
511 * tray conditionally, based on the ftN_f0 and ftN_f1 rmclomv nodes,
512 * it won't add any value; we've already based the creation of the
513 * fan-tray node to the existence of ftN_f0.
514 */
515name:FCB0_1U/FT0/fan-tray
516    NODE F0 location
517	PROP SlotType string r 0 "fan-unit"
518	PROP Label string r 0 "F0"
519    ENDNODE
520    NODE F1 location
521	PROP SlotType string r 0 "fan-unit"
522	PROP Label string r 0 "F1"
523    ENDNODE
524
525name:FCB0_1U/FT1/fan-tray
526    NODE F0 location
527	PROP SlotType string r 0 "fan-unit"
528	PROP Label string r 0 "F0"
529    ENDNODE
530    NODE F1 location
531	PROP SlotType string r 0 "fan-unit"
532	PROP Label string r 0 "F1"
533    ENDNODE
534
535name:FCB0_1U/FT2/fan-tray
536    NODE F0 location
537	PROP SlotType string r 0 "fan-unit"
538	PROP Label string r 0 "F0"
539    ENDNODE
540    NODE F1 location
541	PROP SlotType string r 0 "fan-unit"
542	PROP Label string r 0 "F1"
543    ENDNODE
544
545name:FCB1_1U/FT3/fan-tray
546    NODE F0 location
547	PROP SlotType string r 0 "fan-unit"
548	PROP Label string r 0 "F0"
549    ENDNODE
550    NODE F1 location
551	PROP SlotType string r 0 "fan-unit"
552	PROP Label string r 0 "F1"
553    ENDNODE
554
555name:FCB1_1U/FT4/fan-tray
556    NODE F0 location
557	PROP SlotType string r 0 "fan-unit"
558	PROP Label string r 0 "F0"
559    ENDNODE
560    NODE F1 location
561	PROP SlotType string r 0 "fan-unit"
562	PROP Label string r 0 "F1"
563    ENDNODE
564
565name:FCB1_1U/FT5/fan-tray
566    NODE F0 location
567	PROP SlotType string r 0 "fan-unit"
568	PROP Label string r 0 "F0"
569    ENDNODE
570    NODE F1 location
571	PROP SlotType string r 0 "fan-unit"
572	PROP Label string r 0 "F1"
573    ENDNODE
574
575name:PDB_1U/FT6/fan-tray
576    NODE F0 location
577	PROP SlotType string r 0 "fan-unit"
578	PROP Label string r 0 "F0"
579    ENDNODE
580    NODE F1 location
581	PROP SlotType string r 0 "fan-unit"
582	PROP Label string r 0 "F1"
583    ENDNODE
584
585/*
586 * System Fans for Seattle 2U
587 */
588#ifndef FCB0_2U
589#define FCB0_2U /frutree/chassis/MB/system-board/FIOB/front-io-board-2/FCB0/fan-connector-board
590#endif
591
592#ifndef FCB1_2U
593#define FCB1_2U /frutree/chassis/MB/system-board/FIOB/front-io-board-2/FCB1/fan-connector-board
594#endif
595
596#ifndef PDB_2U
597#define PDB_2U /frutree/chassis/PDB/power-distribution-board/HDDFB/fan-connector-board
598#endif
599
600/*
601 * In Seattle 2U, each fan assembly has only one fan (except for the pdb),
602 * so the presence of f0 is indicative of the presence of the fan tray.
603 */
604name:FCB0_2U
605    NODE FT0 location
606	PROP Label string r 0 "FT0"
607	PROP SlotType string r 0 "fan-tray"
608	REFNODE fan-tray fru WITH name:RMCLOMV/ft0_f0
609    ENDNODE
610    NODE FT1 location
611	PROP Label string r 0 "FT1"
612	PROP SlotType string r 0 "fan-tray"
613	REFNODE fan-tray fru WITH name:RMCLOMV/ft1_f0
614    ENDNODE
615    NODE FT2 location
616	PROP Label string r 0 "FT2"
617	PROP SlotType string r 0 "fan-tray"
618	REFNODE fan-tray fru WITH name:RMCLOMV/ft2_f0
619    ENDNODE
620
621name:FCB1_2U
622    NODE FT3 location
623	PROP Label string r 0 "FT3"
624	PROP SlotType string r 0 "fan-tray"
625	REFNODE fan-tray fru WITH name:RMCLOMV/ft3_f0
626    ENDNODE
627    NODE FT4 location
628	PROP Label string r 0 "FT4"
629	PROP SlotType string r 0 "fan-tray"
630	REFNODE fan-tray fru WITH name:RMCLOMV/ft4_f0
631    ENDNODE
632    NODE FT5 location
633	PROP Label string r 0 "FT5"
634	PROP SlotType string r 0 "fan-tray"
635	REFNODE fan-tray fru WITH name:RMCLOMV/ft5_f0
636    ENDNODE
637
638name:PDB_2U
639    NODE FT6 location
640	PROP Label string r 0 "FT6"
641	PROP SlotType string r 0 "fan-tray"
642	REFNODE fan-tray fru WITH name:RMCLOMV/pdb_hddfb_ft6_f0
643    ENDNODE
644
645/*
646 * Create fan nodes for Seattle 2U
647 */
648name:FCB0_2U/FT0/fan-tray
649    NODE F0 location
650	PROP SlotType string r 0 "fan-unit"
651	PROP Label string r 0 "F0"
652    ENDNODE
653
654name:FCB0_2U/FT1/fan-tray
655    NODE F0 location
656	PROP SlotType string r 0 "fan-unit"
657	PROP Label string r 0 "F0"
658    ENDNODE
659
660name:FCB0_2U/FT2/fan-tray
661    NODE F0 location
662	PROP SlotType string r 0 "fan-unit"
663	PROP Label string r 0 "F0"
664    ENDNODE
665
666name:FCB1_2U/FT3/fan-tray
667    NODE F0 location
668	PROP SlotType string r 0 "fan-unit"
669	PROP Label string r 0 "F0"
670    ENDNODE
671
672name:FCB1_2U/FT4/fan-tray
673    NODE F0 location
674	PROP SlotType string r 0 "fan-unit"
675	PROP Label string r 0 "F0"
676    ENDNODE
677
678name:FCB1_2U/FT5/fan-tray
679    NODE F0 location
680	PROP SlotType string r 0 "fan-unit"
681	PROP Label string r 0 "F0"
682    ENDNODE
683
684name:PDB_2U/FT6/fan-tray
685    NODE F0 location
686	PROP SlotType string r 0 "fan-unit"
687	PROP Label string r 0 "F0"
688    ENDNODE
689    NODE F1 location
690	PROP SlotType string r 0 "fan-unit"
691	PROP Label string r 0 "F1"
692    ENDNODE
693
694/*
695 * PCI Riser Card Right
696 */
697
698#ifndef PCI_R
699#define PCI_R /frutree/chassis/MB/system-board/RISER-RIGHT
700#endif
701
702name:PCI_R
703	REFNODE pci-riser-board fru WITH name:/platform/i2c@1f,530000/riser-fru-prom@0,aa
704
705name:PCI_R/pci-riser-board
706	PROP FRUDataAvailable void r
707	REFPROP _seeprom_source name:/platform/i2c@1f,530000/riser-fru-prom@0,aa
708	NODE PCI0 location
709	    PROP Label string r 0 "PCI0"
710	    PROP SlotType string r 0 "pci-e"
711	ENDNODE
712	REFNODE PCI2 location WITH /platform?PlatformName=SUNW,Sun-Fire-V245
713
714name:/platform/i2c@1f,530000/riser-fru-prom@0,aa
715	REFPROP _fru_parent PCI_R/pci-riser-board
716
717name:PCI_R/pci-riser-board/PCI2
718	PROP Label string r 0 "PCI2"
719	PROP SlotType string r 0 "pci-e"
720
721/*
722 * PCI Riser Card Left
723 */
724
725#ifndef PCI_L
726#define PCI_L /frutree/chassis/MB/system-board/RISER-LEFT
727#endif
728
729name:PCI_L
730	REFNODE pci-riser-board fru WITH name:/platform/i2c@1f,530000/riser-fru-prom@0,a8
731
732name:PCI_L/pci-riser-board
733	PROP FRUDataAvailable void r
734	REFPROP _seeprom_source name:/platform/i2c@1f,530000/riser-fru-prom@0,a8
735
736name:/platform/i2c@1f,530000/riser-fru-prom@0,a8
737	REFPROP _fru_parent PCI_L/pci-riser-board
738
739name:PCI_L/pci-riser-board
740	REFNODE PCI1 location WITH /platform?PlatformName=SUNW,Sun-Fire-V215
741
742name:PCI_L/pci-riser-board/PCI1
743	PROP Label string r 0 "PCI1"
744	PROP SlotType string r 0 "pci-x-e"
745	REFNODE pci-card fru WITH _class:/jbus/pciex@1f,700000/picl?DeviceID=0
746	REFNODE pci-card fru WITH _class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl?DeviceID=1
747
748name:PCI_L/pci-riser-board
749	REFNODE PCI1 location WITH /platform?PlatformName=SUNW,Sun-Fire-V245
750	REFNODE PCI3 location WITH /platform?PlatformName=SUNW,Sun-Fire-V245
751
752name:PCI_L/pci-riser-board/PCI3
753	PROP Label string r 0 "PCI3"
754	PROP SlotType string r 0 "pci-x-e"
755	REFNODE pci-card fru WITH _class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl?DeviceID=0
756	REFNODE pci-card fru WITH _class:/jbus/pciex@1f,700000/pci@0/picl?DeviceID=2
757
758name:PCI_L/pci-riser-board/PCI1
759	PROP Label string r 0 "PCI1"
760	PROP SlotType string r 0 "pci-x-e"
761	REFNODE pci-card fru WITH _class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl?DeviceID=0
762	REFNODE pci-card fru WITH _class:/jbus/pciex@1f,700000/pci@0,2/picl?DeviceID=1
763
764/*
765 * Populate PCI_R slots
766 */
767name:PCI_R/pci-riser-board/PCI0
768	REFNODE pci-card fru WITH _class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl?DeviceID=0
769name:PCI_R/pci-riser-board/PCI2
770	REFNODE pci-card fru WITH _class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl?DeviceID=0
771
772/*
773 * _fru_parent PCIEX devices
774 */
775
776/* 1UEER, 2UEER: PCI0 */
777_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0
778REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
779_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,0
780REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
781_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,1
782REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
783_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,2
784REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
785_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,3
786REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
787_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,4
788REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
789_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,5
790REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
791_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,6
792REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
793_class:/jbus/pciex@1e,600000/pciex@0/pciex@8/picl@0,7
794REFPROP _fru_parent PCI_R/pci-riser-board/PCI0/pci-card
795
796/* 2UEER: PCI2 */
797_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0
798REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
799_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,0
800REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
801_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,1
802REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
803_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,2
804REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
805_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,3
806REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
807_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,4
808REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
809_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,5
810REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
811_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,6
812REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
813_class:/jbus/pciex@1e,600000/pciex@0/pciex@2/picl@0,7
814REFPROP _fru_parent PCI_R/pci-riser-board/PCI2/pci-card
815
816/* 1UEEL: PCI1 */
817_class:/jbus/pciex@1f,700000/picl@0
818REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
819_class:/jbus/pciex@1f,700000/picl@0,0
820REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
821_class:/jbus/pciex@1f,700000/picl@0,1
822REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
823_class:/jbus/pciex@1f,700000/picl@0,2
824REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
825_class:/jbus/pciex@1f,700000/picl@0,3
826REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
827_class:/jbus/pciex@1f,700000/picl@0,4
828REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
829_class:/jbus/pciex@1f,700000/picl@0,5
830REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
831_class:/jbus/pciex@1f,700000/picl@0,6
832REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
833_class:/jbus/pciex@1f,700000/picl@0,7
834REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
835
836/* 2UEEL: PCI1 */
837_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0
838REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
839_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,0
840REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
841_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,1
842REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
843_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,2
844REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
845_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,3
846REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
847_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,4
848REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
849_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,5
850REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
851_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,6
852REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
853_class:/jbus/pciex@1f,700000/pciex@0/pciex@9/picl@0,7
854REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
855
856/* 2UEEL: PCI3 */
857_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0
858REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
859_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,0
860REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
861_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,1
862REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
863_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,2
864REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
865_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,3
866REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
867_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,4
868REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
869_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,5
870REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
871_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,6
872REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
873_class:/jbus/pciex@1f,700000/pciex@0/pciex@8/picl@0,7
874REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
875
876/*
877 * _fru_parent PCI-X devices
878 */
879
880/* 1UXXL: PCI1 */
881_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1
882REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
883_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,0
884REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
885_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,1
886REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
887_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,2
888REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
889_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,3
890REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
891_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,4
892REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
893_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,5
894REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
895_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,6
896REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
897_class:/jbus/pciex@1e,600000/pciex@0/pciex@9/pci@0/pci@8/picl@1,7
898REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
899
900/* 2UEXL-I: PCI1 */
901_class:/jbus/pciex@1f,700000/pci@0,2/picl@1
902REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
903_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,0
904REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
905_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,1
906REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
907_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,2
908REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
909_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,3
910REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
911_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,4
912REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
913_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,5
914REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
915_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,6
916REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
917_class:/jbus/pciex@1f,700000/pci@0,2/picl@1,7
918REFPROP _fru_parent PCI_L/pci-riser-board/PCI1/pci-card
919
920/* 2UEXL-I: PCI3 */
921_class:/jbus/pciex@1f,700000/pci@0/picl@2
922REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
923_class:/jbus/pciex@1f,700000/pci@0/picl@2,0
924REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
925_class:/jbus/pciex@1f,700000/pci@0/picl@2,1
926REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
927_class:/jbus/pciex@1f,700000/pci@0/picl@2,2
928REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
929_class:/jbus/pciex@1f,700000/pci@0/picl@2,3
930REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
931_class:/jbus/pciex@1f,700000/pci@0/picl@2,4
932REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
933_class:/jbus/pciex@1f,700000/pci@0/picl@2,5
934REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
935_class:/jbus/pciex@1f,700000/pci@0/picl@2,6
936REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
937_class:/jbus/pciex@1f,700000/pci@0/picl@2,7
938REFPROP _fru_parent PCI_L/pci-riser-board/PCI3/pci-card
939