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 * supported prop types: void, int, uint, float, string
29 * supported prop access_modes: r, w, rw
30 *
31 * VERSION <version_number>  -- supported version number is 1.0
32 *
33 * name:<namepath> --     gives the anchor node
34 *      where <namepath> is <nodename>[@<bus-addr>][?<prop>=<val>]
35 *
36 * _class:<classpath> --   gives the anchor node
37 *      where <classpath> is <classname>[@<bus-addr>][?<prop>=<val>]
38 *
39 * NODE <name> <class>
40 *       {describes a subtree}
41 * ENDNODE
42 *
43 * PROP <name> <type> <access_mode> [<size> <value>] -- per property
44 *
45 * REFPROP <name> <dstnode>
46 *
47 * REFNODE <name> <class> with <destnode> -- Associates a new node
48 *       with <destnode> if exists
49 *       where
50 *             <name> is the nodename
51 *             <class> is the picl class.
52 *             <destnode> is name:<namepath> or _class:<classpath>
53 *
54 * If "name:" or "_class:" is not specified in the <path>,
55 * the default is "name:"
56 *
57 */
58
59/*
60 * define a macro to force a #ident line into the output stream
61 * otherwise cpp removes it. Use #ifndef because of #included definitions.
62 */
63#ifndef id
64#define	id(s)	#ident s
65#endif
66id("%Z%%M% %I%     %E% SMI")
67
68/*
69 * There are a lot of nodes below the rmclomv node, define a shortname
70 */
71#define	RMCLOMV	/platform/pci@1e,600000/isa@7/rmc-comm@0,3e8/SUNW,rmclomv
72
73VERSION 1.1
74VERBOSE 1
75NODE frutree picl
76    NODE chassis fru
77    /*
78     * SunMC physical view view_points for this platform
79     * This will get moved to a separate SunMC physical view plugin later.
80     */
81    PROP ViewPoints string r 0 "front rear side"
82	NODE MB location
83	    PROP SlotType string r 0 "system-board"
84    	    PROP Label string r 0 "MB"
85	ENDNODE
86	NODE F0 location
87	    PROP SlotType string r 0 "fan-unit"
88    	    PROP Label string r 0 "F0"
89	ENDNODE
90	NODE F1 location
91	    PROP SlotType string r 0 "fan-unit"
92    	    PROP Label string r 0 "F1"
93	ENDNODE
94	NODE F2 location
95	    PROP SlotType string r 0 "fan-unit"
96    	    PROP Label string r 0 "F2"
97	ENDNODE
98	NODE PS0 location
99	    PROP SlotType string r 0 "power-supply"
100	    PROP Label string r 0 "PS0"
101	ENDNODE
102	NODE HDD0 location
103	    PROP SlotType string r 0 "disk-slot"
104	    PROP Label string r 0 "HDD0"
105	ENDNODE
106	NODE HDD1 location
107	    PROP SlotType string r 0 "disk-slot"
108	    PROP Label string r 0 "HDD1"
109	ENDNODE
110	NODE RMD0 location
111	    PROP SlotType string r 0 "cdrom-slot"
112	    PROP Label string r 0 "RMD0"
113	ENDNODE
114	NODE IFB location
115    	    PROP Label string r 0 "IFB"
116	    NODE ifb fru
117	    ENDNODE
118	ENDNODE
119	NODE BB location
120    	    PROP Label string r 0 "BB"
121	    NODE bb fru
122	    ENDNODE
123	ENDNODE
124	NODE HCM location
125    	    PROP Label string r 0 "HCM"
126	ENDNODE
127	NODE SCC location
128    	    PROP Label string r 0 "SCC"
129	    NODE scc fru
130	    ENDNODE
131	ENDNODE
132    	NODE PCI0 location
133	    PROP SlotType string r 0 "pci"
134    	    PROP Label string r 0 "PCI0"
135    	ENDNODE
136	NODE USB0 location
137            PROP Label string r 0 "USB0"
138        ENDNODE
139        NODE USB1 location
140            PROP Label string r 0 "USB1"
141        ENDNODE
142
143	/*
144	 * nodes for extra hardware present in 1u version on ENxS
145	 */
146	REFNODE F3 location WITH /platform?PlatformName=SUNW,Sun-Fire-V210
147	REFNODE F3 location WITH /platform?PlatformName=SUNW,Netra-240
148	REFNODE F3 location WITH /platform?PlatformName=SUNW,Netra-210
149	REFNODE F4 location WITH /platform?PlatformName=SUNW,Netra-210
150	REFNODE F5 location WITH /platform?PlatformName=SUNW,Netra-210
151	REFNODE ALARM location WITH /platform?PlatformName=SUNW,Netra-210
152	REFNODE DVDIF location WITH /platform?PlatformName=SUNW,Netra-210
153	REFNODE SASPCI location WITH /platform?PlatformName=SUNW,Netra-210
154	REFNODE SYSCTRL location WITH /platform?PlatformName=SUNW,Netra-210
155
156	/*
157	 * nodes for extra hardware present in 2u version on ENxS
158	 */
159	REFNODE HDD2 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
160	REFNODE HDD3 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
161	REFNODE PS1 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
162	REFNODE PS1 location WITH /platform?PlatformName=SUNW,Netra-240
163	REFNODE PRB location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
164	REFNODE PRB location WITH /platform?PlatformName=SUNW,Netra-240
165	REFNODE PDB location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
166	REFNODE PDB location WITH /platform?PlatformName=SUNW,Netra-240
167	REFNODE PCI1 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
168	REFNODE PCI1 location WITH /platform?PlatformName=SUNW,Netra-240
169	REFNODE PCI2 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
170	REFNODE PCI2 location WITH /platform?PlatformName=SUNW,Netra-240
171	REFNODE SYSCTRL location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
172	REFNODE SYSCTRL location WITH /platform?PlatformName=SUNW,Netra-240
173	REFNODE ALARM location WITH /platform?PlatformName=SUNW,Netra-240
174    ENDNODE
175ENDNODE
176
177/*
178 * add power-supply nodes if their fru-proms are visible
179 */
180name:/frutree/chassis/PS0
181	REFNODE power-supply fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/power-supply-fru-prom@0,b0
182name:/frutree/chassis/PS1
183	REFNODE power-supply fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/power-supply-fru-prom@0,a4
184
185/*
186 * add properties to 2u locations
187 */
188
189/* extra disks */
190name:/frutree/chassis/HDD2
191	PROP SlotType string r 0 "disk-slot"
192	PROP Label string r 0 "HDD2"
193name:/frutree/chassis/HDD3
194	PROP SlotType string r 0 "disk-slot"
195	PROP Label string r 0 "HDD3"
196
197/* add disk fru nodes for disks which are present */
198name:/frutree/chassis/HDD0
199	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@0,0
200name:/frutree/chassis/HDD1
201	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@1,0
202name:/frutree/chassis/HDD2
203	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@2,0
204name:/frutree/chassis/HDD3
205	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@3,0
206
207/* add disk fru nodes for SAS disks which are present */
208name:/frutree/chassis/HDD0
209        REFNODE disk fru WITH name:/platform/pci@1c,600000/LSILogic,sas@1/sd@0,0
210name:/frutree/chassis/HDD1
211        REFNODE disk fru WITH name:/platform/pci@1c,600000/LSILogic,sas@1/sd@1,0
212
213/* add cdrom fru nodes for disks which are present */
214name:/frutree/chassis/RMD0
215	REFNODE cdrom fru WITH name:/platform/pci@1e,600000/ide@d/sd@0,0
216
217/* populate fan locations with fans which are present */
218name:/frutree/chassis/F0
219	REFNODE fan-unit fru WITH name:RMCLOMV/f0_rs
220name:/frutree/chassis/F1
221	REFNODE fan-unit fru WITH name:RMCLOMV/f1_rs
222name:/frutree/chassis/F2
223	REFNODE fan-unit fru WITH name:RMCLOMV/f2_rs
224
225/* extra chassis fan */
226name:/frutree/chassis/F3
227	PROP SlotType string r 0 "fan-unit"
228	PROP Label string r 0 "F3"
229	REFNODE fan-unit fru WITH name:RMCLOMV/f3_rs
230
231name:/frutree/chassis/F4
232	PROP SlotType string r 0 "fan-unit"
233	PROP Label string r 0 "F4"
234	REFNODE fan-unit fru WITH name:RMCLOMV/f4_rs
235
236name:/frutree/chassis/F5
237	PROP SlotType string r 0 "fan-unit"
238	PROP Label string r 0 "F5"
239	REFNODE fan-unit fru WITH name:RMCLOMV/f5_rs
240
241/* extra power supply */
242name:/frutree/chassis/PS1
243	PROP SlotType string r 0 "power-supply"
244	PROP Label string r 0 "PS1"
245
246/* PCI riser board */
247name:/frutree/chassis/PRB
248	PROP Label string r 0 "PRB"
249	NODE prb fru
250	ENDNODE
251
252/* Power distribution board */
253name:/frutree/chassis/PDB
254	PROP Label string r 0 "PDB"
255	NODE pdb fru
256	ENDNODE
257
258/* Extra PCI slots */
259name:/frutree/chassis/PCI1
260	PROP SlotType string r 0 "pci"
261	PROP Label string r 0 "PCI1"
262
263name:/frutree/chassis/PCI2
264	PROP SlotType string r 0 "pci"
265	PROP Label string r 0 "PCI2"
266
267/* keyswitch */
268name:/frutree/chassis/SYSCTRL
269	PROP Label string r 0 "SYSCTRL"
270
271/* an anomoly, the chassis fruid prom */
272name:/frutree/chassis/IFB/ifb
273	PROP FRUDataAvailable void r
274	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/chassis-fru-prom@0,a8
275
276name:/platform/pci@1e,600000/isa@7/i2c@0,320/chassis-fru-prom@0,a8
277	REFPROP _fru_parent /frutree/chassis/IFB/ifb
278
279/*
280 * high speed cryptographic module
281 */
282name:/frutree/chassis/HCM
283	REFNODE hcm fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/hcm-card-fru-prom@0,d6
284
285name:/frutree/chassis/HCM/hcm
286	PROP FRUDataAvailable void r
287	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/hcm-card-fru-prom@0,d6
288
289name:/platform/pci@1e,600000/isa@7/i2c@0,320/hcm-card-fru-prom@0,d6
290	REFPROP _fru_parent /frutree/chassis/HCM/hcm
291
292name:/platform/pci@1c,600000/cpu?DeviceID=1
293	REFPROP _fru_parent /frutree/chassis/HCM/hcm
294
295name:/frutree/chassis/ALARM
296	PROP Label string r 0 "ALARM"
297	REFNODE alarm fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/alarm-fru-prom@0,ac
298
299name:/frutree/chassis/ALARM/alarm
300	PROP FRUDataAvailable void r
301	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/alarm-fru-prom@0,ac
302
303name:/platform/pci@1e,600000/isa@7/i2c@0,320/alarm-fru-prom@0,ac
304	REFPROP _fru_parent /frutree/chassis/ALARM/alarm
305
306/*
307 * dvd if
308 */
309name:/frutree/chassis/DVDIF
310	PROP Label string r 0 "DVDIF"
311	REFNODE dvdif fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/dvd-if-fru-prom@0,aa
312
313name:/frutree/chassis/DVDIF/dvdif
314	PROP FRUDataAvailable void r
315	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/dvd-if-fru-prom@0,aa
316
317name:/platform/pci@1e,600000/isa@7/i2c@0,320/dvd-if-fru-prom@0,aa
318	REFPROP _fru_parent /frutree/chassis/DVDIF/dvdif
319
320/*
321 * sas if
322 */
323name:/frutree/chassis/SASIF
324	PROP Label string r 0 "SASIF"
325	REFNODE sasif fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-if-fru-prom@0,a8
326
327name:/frutree/chassis/SASIF/sasif
328	PROP FRUDataAvailable void r
329	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-if-fru-prom@0,a8
330
331name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-if-fru-prom@0,a8
332	REFPROP _fru_parent /frutree/chassis/SASIF/sasif
333
334/*
335 * sas pci
336 */
337name:/frutree/chassis/SASPCI
338	PROP Label string r 0 "SASPCI"
339	REFNODE saspci fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-pci-fru-prom@0,d8
340
341name:/frutree/chassis/SASPCI/saspci
342	PROP FRUDataAvailable void r
343	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-pci-fru-prom@0,d8
344
345name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-pci-fru-prom@0,d8
346	REFPROP _fru_parent /frutree/chassis/SASPCI/saspci
347
348
349name:/frutree/chassis/PCI0
350	REFNODE pci-card fru WITH _class:/jbus/pci@1d,700000/picl?DeviceID=1
351name:/frutree/chassis/PCI1
352	REFNODE pci-card fru WITH _class:/jbus/pci@1e,600000/picl?DeviceID=3
353name:/frutree/chassis/PCI2
354	REFNODE pci-card fru WITH _class:/jbus/pci@1e,600000/picl?DeviceID=2
355
356#include <fru_SC_data.info>
357#include "system-board.info"
358#include <SB-tables.info>
359
360_class:/jbus/pci@1d,700000/picl@1
361	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
362_class:/jbus/pci@1d,700000/picl@1,0
363	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
364_class:/jbus/pci@1d,700000/picl@1,1
365	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
366_class:/jbus/pci@1d,700000/picl@1,2
367	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
368_class:/jbus/pci@1d,700000/picl@1,3
369	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
370_class:/jbus/pci@1d,700000/picl@1,4
371	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
372_class:/jbus/pci@1d,700000/picl@1,5
373	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
374_class:/jbus/pci@1d,700000/picl@1,6
375	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
376_class:/jbus/pci@1d,700000/picl@1,7
377	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
378_class:/jbus/pci@1e,600000/picl@3
379	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
380_class:/jbus/pci@1e,600000/picl@3,0
381	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
382_class:/jbus/pci@1e,600000/picl@3,1
383	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
384_class:/jbus/pci@1e,600000/picl@3,2
385	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
386_class:/jbus/pci@1e,600000/picl@3,3
387	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
388_class:/jbus/pci@1e,600000/picl@3,4
389	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
390_class:/jbus/pci@1e,600000/picl@3,5
391	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
392_class:/jbus/pci@1e,600000/picl@3,6
393	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
394_class:/jbus/pci@1e,600000/picl@3,7
395	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
396_class:/jbus/pci@1e,600000/picl@2
397	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
398_class:/jbus/pci@1e,600000/picl@2,0
399	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
400_class:/jbus/pci@1e,600000/picl@2,1
401	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
402_class:/jbus/pci@1e,600000/picl@2,2
403	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
404_class:/jbus/pci@1e,600000/picl@2,3
405	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
406_class:/jbus/pci@1e,600000/picl@2,4
407	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
408_class:/jbus/pci@1e,600000/picl@2,5
409	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
410_class:/jbus/pci@1e,600000/picl@2,6
411	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
412_class:/jbus/pci@1e,600000/picl@2,7
413	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
414