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 * 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 F3 location WITH /platform?PlatformName=SUNW,Sun-Fire-V125
150	REFNODE F4 location WITH /platform?PlatformName=SUNW,Netra-210
151	REFNODE F5 location WITH /platform?PlatformName=SUNW,Netra-210
152	REFNODE ALARM location WITH /platform?PlatformName=SUNW,Netra-210
153	REFNODE DVDIF location WITH /platform?PlatformName=SUNW,Netra-210
154	REFNODE SASPCI location WITH /platform?PlatformName=SUNW,Netra-210
155	REFNODE SYSCTRL location WITH /platform?PlatformName=SUNW,Netra-210
156
157	/*
158	 * nodes for extra hardware present in 2u version on ENxS
159	 */
160	REFNODE HDD2 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
161	REFNODE HDD3 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
162	REFNODE PS1 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
163	REFNODE PS1 location WITH /platform?PlatformName=SUNW,Netra-240
164	REFNODE PRB location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
165	REFNODE PRB location WITH /platform?PlatformName=SUNW,Netra-240
166	REFNODE PDB location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
167	REFNODE PDB location WITH /platform?PlatformName=SUNW,Netra-240
168	REFNODE PCI1 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
169	REFNODE PCI1 location WITH /platform?PlatformName=SUNW,Netra-240
170	REFNODE PCI2 location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
171	REFNODE PCI2 location WITH /platform?PlatformName=SUNW,Netra-240
172	REFNODE SYSCTRL location WITH /platform?PlatformName=SUNW,Sun-Fire-V240
173	REFNODE SYSCTRL location WITH /platform?PlatformName=SUNW,Netra-240
174	REFNODE ALARM location WITH /platform?PlatformName=SUNW,Netra-240
175    ENDNODE
176ENDNODE
177
178/*
179 * add power-supply nodes if their fru-proms are visible
180 */
181name:/frutree/chassis/PS0
182	REFNODE power-supply fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/power-supply-fru-prom@0,b0
183name:/frutree/chassis/PS1
184	REFNODE power-supply fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/power-supply-fru-prom@0,a4
185
186/*
187 * add properties to 2u locations
188 */
189
190/* extra disks */
191name:/frutree/chassis/HDD2
192	PROP SlotType string r 0 "disk-slot"
193	PROP Label string r 0 "HDD2"
194name:/frutree/chassis/HDD3
195	PROP SlotType string r 0 "disk-slot"
196	PROP Label string r 0 "HDD3"
197
198/* add disk fru nodes for disks which are present */
199name:/frutree/chassis/HDD0
200	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@0,0
201name:/frutree/chassis/HDD1
202	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@1,0
203name:/frutree/chassis/HDD2
204	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@2,0
205name:/frutree/chassis/HDD3
206	REFNODE disk fru WITH name:/platform/pci@1c,600000/scsi@2/sd@3,0
207
208/* add disk fru nodes for SAS disks which are present */
209name:/frutree/chassis/HDD0
210        REFNODE disk fru WITH name:/platform/pci@1c,600000/LSILogic,sas@1/sd@0,0
211name:/frutree/chassis/HDD1
212        REFNODE disk fru WITH name:/platform/pci@1c,600000/LSILogic,sas@1/sd@1,0
213
214/* add cdrom fru nodes for disks which are present */
215name:/frutree/chassis/RMD0
216	REFNODE cdrom fru WITH name:/platform/pci@1e,600000/ide@d/sd@0,0
217
218/* populate fan locations with fans which are present */
219name:/frutree/chassis/F0
220	REFNODE fan-unit fru WITH name:RMCLOMV/f0_rs
221name:/frutree/chassis/F1
222	REFNODE fan-unit fru WITH name:RMCLOMV/f1_rs
223name:/frutree/chassis/F2
224	REFNODE fan-unit fru WITH name:RMCLOMV/f2_rs
225
226/* extra chassis fan */
227name:/frutree/chassis/F3
228	PROP SlotType string r 0 "fan-unit"
229	PROP Label string r 0 "F3"
230	REFNODE fan-unit fru WITH name:RMCLOMV/f3_rs
231
232name:/frutree/chassis/F4
233	PROP SlotType string r 0 "fan-unit"
234	PROP Label string r 0 "F4"
235	REFNODE fan-unit fru WITH name:RMCLOMV/f4_rs
236
237name:/frutree/chassis/F5
238	PROP SlotType string r 0 "fan-unit"
239	PROP Label string r 0 "F5"
240	REFNODE fan-unit fru WITH name:RMCLOMV/f5_rs
241
242/* extra power supply */
243name:/frutree/chassis/PS1
244	PROP SlotType string r 0 "power-supply"
245	PROP Label string r 0 "PS1"
246
247/* PCI riser board */
248name:/frutree/chassis/PRB
249	PROP Label string r 0 "PRB"
250	NODE prb fru
251	ENDNODE
252
253/* Power distribution board */
254name:/frutree/chassis/PDB
255	PROP Label string r 0 "PDB"
256	NODE pdb fru
257	ENDNODE
258
259/* Extra PCI slots */
260name:/frutree/chassis/PCI1
261	PROP SlotType string r 0 "pci"
262	PROP Label string r 0 "PCI1"
263
264name:/frutree/chassis/PCI2
265	PROP SlotType string r 0 "pci"
266	PROP Label string r 0 "PCI2"
267
268/* keyswitch */
269name:/frutree/chassis/SYSCTRL
270	PROP Label string r 0 "SYSCTRL"
271
272/* an anomoly, the chassis fruid prom */
273name:/frutree/chassis/IFB/ifb
274	PROP FRUDataAvailable void r
275	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/chassis-fru-prom@0,a8
276
277name:/platform/pci@1e,600000/isa@7/i2c@0,320/chassis-fru-prom@0,a8
278	REFPROP _fru_parent /frutree/chassis/IFB/ifb
279
280/*
281 * high speed cryptographic module
282 */
283name:/frutree/chassis/HCM
284	REFNODE hcm fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/hcm-card-fru-prom@0,d6
285
286name:/frutree/chassis/HCM/hcm
287	PROP FRUDataAvailable void r
288	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/hcm-card-fru-prom@0,d6
289
290name:/platform/pci@1e,600000/isa@7/i2c@0,320/hcm-card-fru-prom@0,d6
291	REFPROP _fru_parent /frutree/chassis/HCM/hcm
292
293name:/platform/pci@1c,600000/cpu?DeviceID=1
294	REFPROP _fru_parent /frutree/chassis/HCM/hcm
295
296name:/frutree/chassis/ALARM
297	PROP Label string r 0 "ALARM"
298	REFNODE alarm fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/alarm-fru-prom@0,ac
299
300name:/frutree/chassis/ALARM/alarm
301	PROP FRUDataAvailable void r
302	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/alarm-fru-prom@0,ac
303
304name:/platform/pci@1e,600000/isa@7/i2c@0,320/alarm-fru-prom@0,ac
305	REFPROP _fru_parent /frutree/chassis/ALARM/alarm
306
307/*
308 * dvd if
309 */
310name:/frutree/chassis/DVDIF
311	PROP Label string r 0 "DVDIF"
312	REFNODE dvdif fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/dvd-if-fru-prom@0,aa
313
314name:/frutree/chassis/DVDIF/dvdif
315	PROP FRUDataAvailable void r
316	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/dvd-if-fru-prom@0,aa
317
318name:/platform/pci@1e,600000/isa@7/i2c@0,320/dvd-if-fru-prom@0,aa
319	REFPROP _fru_parent /frutree/chassis/DVDIF/dvdif
320
321/*
322 * sas if
323 */
324name:/frutree/chassis/SASIF
325	PROP Label string r 0 "SASIF"
326	REFNODE sasif fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-if-fru-prom@0,a8
327
328name:/frutree/chassis/SASIF/sasif
329	PROP FRUDataAvailable void r
330	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-if-fru-prom@0,a8
331
332name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-if-fru-prom@0,a8
333	REFPROP _fru_parent /frutree/chassis/SASIF/sasif
334
335/*
336 * sas pci
337 */
338name:/frutree/chassis/SASPCI
339	PROP Label string r 0 "SASPCI"
340	REFNODE saspci fru WITH name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-pci-fru-prom@0,d8
341
342name:/frutree/chassis/SASPCI/saspci
343	PROP FRUDataAvailable void r
344	REFPROP _seeprom_source name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-pci-fru-prom@0,d8
345
346name:/platform/pci@1e,600000/isa@7/i2c@0,320/sas-pci-fru-prom@0,d8
347	REFPROP _fru_parent /frutree/chassis/SASPCI/saspci
348
349
350name:/frutree/chassis/PCI0
351	REFNODE pci-card fru WITH _class:/jbus/pci@1d,700000/picl?DeviceID=1
352name:/frutree/chassis/PCI1
353	REFNODE pci-card fru WITH _class:/jbus/pci@1e,600000/picl?DeviceID=3
354name:/frutree/chassis/PCI2
355	REFNODE pci-card fru WITH _class:/jbus/pci@1e,600000/picl?DeviceID=2
356
357#include <fru_SC_data.info>
358#include "system-board.info"
359#include <SB-tables.info>
360
361_class:/jbus/pci@1d,700000/picl@1
362	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
363_class:/jbus/pci@1d,700000/picl@1,0
364	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
365_class:/jbus/pci@1d,700000/picl@1,1
366	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
367_class:/jbus/pci@1d,700000/picl@1,2
368	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
369_class:/jbus/pci@1d,700000/picl@1,3
370	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
371_class:/jbus/pci@1d,700000/picl@1,4
372	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
373_class:/jbus/pci@1d,700000/picl@1,5
374	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
375_class:/jbus/pci@1d,700000/picl@1,6
376	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
377_class:/jbus/pci@1d,700000/picl@1,7
378	REFPROP _fru_parent name:/frutree/chassis/PCI0/pci-card
379_class:/jbus/pci@1e,600000/picl@3
380	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
381_class:/jbus/pci@1e,600000/picl@3,0
382	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
383_class:/jbus/pci@1e,600000/picl@3,1
384	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
385_class:/jbus/pci@1e,600000/picl@3,2
386	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
387_class:/jbus/pci@1e,600000/picl@3,3
388	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
389_class:/jbus/pci@1e,600000/picl@3,4
390	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
391_class:/jbus/pci@1e,600000/picl@3,5
392	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
393_class:/jbus/pci@1e,600000/picl@3,6
394	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
395_class:/jbus/pci@1e,600000/picl@3,7
396	REFPROP _fru_parent name:/frutree/chassis/PCI1/pci-card
397_class:/jbus/pci@1e,600000/picl@2
398	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
399_class:/jbus/pci@1e,600000/picl@2,0
400	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
401_class:/jbus/pci@1e,600000/picl@2,1
402	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
403_class:/jbus/pci@1e,600000/picl@2,2
404	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
405_class:/jbus/pci@1e,600000/picl@2,3
406	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
407_class:/jbus/pci@1e,600000/picl@2,4
408	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
409_class:/jbus/pci@1e,600000/picl@2,5
410	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
411_class:/jbus/pci@1e,600000/picl@2,6
412	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
413_class:/jbus/pci@1e,600000/picl@2,7
414	REFPROP _fru_parent name:/frutree/chassis/PCI2/pci-card
415