1<?xml version="1.0"?> 2<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1"> 3<!-- 4 Copyright 2009 Sun Microsystems, Inc. All rights reserved. 5 Use is subject to license terms. 6 7 CDDL HEADER START 8 9 The contents of this file are subject to the terms of the 10 Common Development and Distribution License (the "License"). 11 You may not use this file except in compliance with the License. 12 13 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 14 or http://www.opensolaris.org/os/licensing. 15 See the License for the specific language governing permissions 16 and limitations under the License. 17 18 When distributing Covered Code, include this CDDL HEADER in each 19 file and include the License file at usr/src/OPENSOLARIS.LICENSE. 20 If applicable, add the following below this CDDL HEADER, with the 21 fields enclosed by brackets "[]" replaced with your own identifying 22 information: Portions Copyright [yyyy] [name of copyright owner] 23 24 CDDL HEADER END 25 26--> 27 28<topology name='psu' scheme='hc'> 29 30 <set type='product' setlist='Sun-Fire-X4100-Server|Sun-Fire-X4200-Server|Sun-Fire-X4100-M2|Sun-Fire-X4200-M2|Sun-Fire-X4140|Sun-Fire-X4240|Sun-Fire-X4440|Sun-Fire-X4600|Sun-Fire-X4600-M2'> 31 <range name='psu' min='0' max='100'> 32 <facility name='service' type='indicator' provider='fac_prov_ipmi' > 33 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 34 <propval name='entity_ref' type='string_array' > 35 <propitem value='PS_FAULT' /> 36 <propitem value='sys.psfail.led' /> 37 </propval> 38 <propval name='type' type='uint32' value='0' /> 39 <propmethod name='ipmi_indicator_mode' version='0' 40 propname='mode' proptype='uint32' mutable='1' > 41 </propmethod> 42 </propgroup> 43 </facility> 44 <!-- 45 We override the 'vinok' and 'pwrok' sensors so that we can declare 46 them as TOPO_SENSOR_TYPE_GENERIC_OK, which has semantic meaning for 47 fan/psu fault diagnosis. 48 --> 49 <facility name='ps.vinok' type='sensor' provider='fac_prov_ipmi' > 50 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 51 <propval name='type' type='uint32' value='270' /> 52 <propval name='sensor-class' type='string' value='discrete' /> 53 <propmethod name='ipmi_entity' version='0' 54 propname='entity_ref' proptype='string_array' > 55 <argval name='format' type='string_array'> 56 <argitem value='PS%d/VINOK' /> 57 <argitem value='ps%d.vinok' /> 58 </argval> 59 <argval name='offset' type='uint32' value='0' /> 60 <argval name='nparams' type='uint32' value='1' /> 61 </propmethod> 62 <propmethod name='ipmi_sensor_state' version='0' 63 propname='state' proptype='uint32' > 64 </propmethod> 65 </propgroup> 66 </facility> 67 <facility name='ps.pwrok' type='sensor' provider='fac_prov_ipmi' > 68 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 69 <propval name='type' type='uint32' value='270' /> 70 <propval name='sensor-class' type='string' value='discrete' /> 71 <propmethod name='ipmi_entity' version='0' 72 propname='entity_ref' proptype='string_array' > 73 <argval name='format' type='string_array' > 74 <argitem value='PS%d/PWROK' /> 75 <argitem value='ps%d.pwrok' /> 76 </argval> 77 <argval name='offset' type='uint32' value='0' /> 78 <argval name='nparams' type='uint32' value='1' /> 79 </propmethod> 80 <propmethod name='ipmi_sensor_state' version='0' 81 propname='state' proptype='uint32' > 82 </propmethod> 83 </propgroup> 84 </facility> 85 <propgroup name='protocol' version='1' 86 name-stability='Private' data-stability='Private' > 87 88 <propmethod name='ipmi_fru_label' version='0' 89 propname='label' proptype='string' > 90 91 <argval name='format' type='string' value='PS%d' /> 92 <argval name='offset' type='uint32' value='0' /> 93 94 </propmethod> 95 </propgroup> 96 <propgroup name='ipmi' version='1' 97 name-stability='Private' data-stability='Private' > 98 99 <propmethod name='ipmi_entity' version='0' 100 propname='entity_ref' proptype='string_array' > 101 102 <argval name='format' type='string_array'> 103 <argitem value='PS%d/PRSNT' /> 104 <argitem value='ps%d.prsnt' /> 105 </argval> 106 <argval name='offset' type='uint32' value='0' /> 107 <argval name='nparams' type='uint32' value='1' /> 108 109 </propmethod> 110 </propgroup> 111 </range> 112 </set> 113 114 <!-- 115 Thumper platforms explicitly have only two power supplies, as the third 116 (unused) bay is reported via IPMI but not actually valid. 117 See comments above for why we manually specify vinok/pwrok 118 --> 119 <set type='product' setlist='Sun-Fire-X4500|Sun-Fire-X4540'> 120 <range name='psu' min='0' max='100'> 121 <node instance='0'> 122 <facility name='ps0.vinok' type='sensor' provider='fac_prov_ipmi' > 123 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 124 <propval name='type' type='uint32' value='270' /> 125 <propval name='sensor-class' type='string' value='discrete' /> 126 <propmethod name='ipmi_entity' version='0' 127 propname='entity_ref' proptype='string_array' > 128 <argval name='format' type='string_array' > 129 <argitem value='PS%d/VINOK' /> 130 <argitem value='ps%d.vinok' /> 131 </argval> 132 <argval name='offset' type='uint32' value='0' /> 133 <argval name='nparams' type='uint32' value='1' /> 134 </propmethod> 135 <propmethod name='ipmi_sensor_state' version='0' 136 propname='state' proptype='uint32' > 137 </propmethod> 138 </propgroup> 139 </facility> 140 <facility name='ps0.pwrok' type='sensor' provider='fac_prov_ipmi' > 141 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 142 <propval name='type' type='uint32' value='270' /> 143 <propval name='sensor-class' type='string' value='discrete' /> 144 <propmethod name='ipmi_entity' version='0' 145 propname='entity_ref' proptype='string_array' > 146 <argval name='format' type='string_array' > 147 <argitem value='PS%d/PWROK' /> 148 <argitem value='ps%d.pwrok' /> 149 </argval> 150 <argval name='offset' type='uint32' value='0' /> 151 <argval name='nparams' type='uint32' value='1' /> 152 </propmethod> 153 <propmethod name='ipmi_sensor_state' version='0' 154 propname='state' proptype='uint32' > 155 </propmethod> 156 </propgroup> 157 </facility> 158 <propgroup name='protocol' version='1' 159 name-stability='Private' data-stability='Private' > 160 <propval name='label' type='string' value='PS0' /> 161 <propmethod name='ipmi_fru_fmri' version='0' 162 propname='FRU' proptype='fmri' > 163 <argval name='entity' type='string' value='self' /> 164 </propmethod> 165 </propgroup> 166 <propgroup name='ipmi' version='1' 167 name-stability='Private' data-stability='Private' > 168 169 <propval name='entity_ref' type='string_array'> 170 <propitem value='PS0/PRSNT' /> 171 <propitem value='ps0.prsnt' /> 172 </propval> 173 </propgroup> 174 <enum-method name='ipmi' version='1' /> 175 </node> 176 <node instance='1'> 177 <facility name='ps1.vinok' type='sensor' provider='fac_prov_ipmi' > 178 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 179 <propval name='type' type='uint32' value='270' /> 180 <propval name='sensor-class' type='string' value='discrete' /> 181 <propmethod name='ipmi_entity' version='0' 182 propname='entity_ref' proptype='string_array' > 183 <argval name='format' type='string_array' > 184 <argitem value='PS%d/VINOK' /> 185 <argitem value='ps%d.vinok' /> 186 </argval> 187 <argval name='offset' type='uint32' value='0' /> 188 <argval name='nparams' type='uint32' value='1' /> 189 </propmethod> 190 <propmethod name='ipmi_sensor_state' version='0' 191 propname='state' proptype='uint32' > 192 </propmethod> 193 </propgroup> 194 </facility> 195 <facility name='ps1.pwrok' type='sensor' provider='fac_prov_ipmi' > 196 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 197 <propval name='type' type='uint32' value='270' /> 198 <propval name='sensor-class' type='string' value='discrete' /> 199 <propmethod name='ipmi_entity' version='0' 200 propname='entity_ref' proptype='string_array' > 201 <argval name='format' type='string_array' > 202 <argitem value='PS%d/PWROK' /> 203 <argitem value='ps%d.pwrok' /> 204 </argval> 205 <argval name='offset' type='uint32' value='0' /> 206 <argval name='nparams' type='uint32' value='1' /> 207 </propmethod> 208 <propmethod name='ipmi_sensor_state' version='0' 209 propname='state' proptype='uint32' > 210 </propmethod> 211 </propgroup> 212 </facility> 213 <propgroup name='protocol' version='1' 214 name-stability='Private' data-stability='Private' > 215 <propval name='label' type='string' value='PS1' /> 216 <propmethod name='ipmi_fru_fmri' version='0' 217 propname='FRU' proptype='fmri' > 218 <argval name='entity' type='string' value='self' /> 219 </propmethod> 220 </propgroup> 221 <propgroup name='ipmi' version='1' 222 name-stability='Private' data-stability='Private' > 223 224 <propval name='entity_ref' type='string_array'> 225 <propitem value='PS1/PRSNT' /> 226 <propitem value='ps1.prsnt' /> 227 </propval> 228 </propgroup> 229 <enum-method name='ipmi' version='1' /> 230 </node> 231 </range> 232 </set> 233 <set type='product' setlist='SUN-FIRE-X4150|SUN-FIRE-X4250|SUN-FIRE-X4450'> 234 <range name='psu' min='0' max='1'> 235 <fac-enum provider='fac_prov_ipmi' /> 236 <node instance='0'> 237 <facility name='PS0.VINOK' type='sensor' provider='fac_prov_ipmi' > 238 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 239 <propval name='type' type='uint32' value='270' /> 240 <propval name='sensor-class' type='string' value='discrete' /> 241 <propmethod name='ipmi_entity' version='0' 242 propname='entity_ref' proptype='string_array' > 243 <argval name='format' type='string_array'> 244 <argitem value='PS%d/VINOK' /> 245 </argval> 246 <argval name='offset' type='uint32' value='0' /> 247 <argval name='nparams' type='uint32' value='1' /> 248 </propmethod> 249 <propmethod name='ipmi_sensor_state' version='0' 250 propname='state' proptype='uint32' > 251 </propmethod> 252 </propgroup> 253 </facility> 254 <facility name='PS0.PWROK' type='sensor' provider='fac_prov_ipmi' > 255 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 256 <propval name='type' type='uint32' value='270' /> 257 <propval name='sensor-class' type='string' value='discrete' /> 258 <propmethod name='ipmi_entity' version='0' 259 propname='entity_ref' proptype='string_array' > 260 <argval name='format' type='string_array'> 261 <argitem value='PS%d/PWROK' /> 262 </argval> 263 <argval name='offset' type='uint32' value='0' /> 264 <argval name='nparams' type='uint32' value='1' /> 265 </propmethod> 266 <propmethod name='ipmi_sensor_state' version='0' 267 propname='state' proptype='uint32' > 268 </propmethod> 269 </propgroup> 270 </facility> 271 <propgroup name='protocol' version='1' 272 name-stability='Private' data-stability='Private' > 273 <propval name='label' type='string' value='PS0' /> 274 <propmethod name='ipmi_fru_fmri' version='0' 275 propname='FRU' proptype='fmri' > 276 <argval name='entity' type='string' value='self' /> 277 </propmethod> 278 </propgroup> 279 <propgroup name='ipmi' version='1' 280 name-stability='Private' data-stability='Private' > 281 282 <propval name='entity_ref' type='string_array'> 283 <propitem value='PS0/PRSNT' /> 284 </propval> 285 </propgroup> 286 <enum-method name='ipmi' version='1' /> 287 </node> 288 <node instance='1'> 289 <facility name='PS1.VINOK' type='sensor' provider='fac_prov_ipmi' > 290 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 291 <propval name='type' type='uint32' value='270' /> 292 <propval name='sensor-class' type='string' value='discrete' /> 293 <propmethod name='ipmi_entity' version='0' 294 propname='entity_ref' proptype='string_array' > 295 <argval name='format' type='string_array' > 296 <argitem value='PS%d/VINOK' /> 297 </argval> 298 <argval name='offset' type='uint32' value='0' /> 299 <argval name='nparams' type='uint32' value='1' /> 300 </propmethod> 301 <propmethod name='ipmi_sensor_state' version='0' 302 propname='state' proptype='uint32' > 303 </propmethod> 304 </propgroup> 305 </facility> 306 <facility name='PS1.PWROK' type='sensor' provider='fac_prov_ipmi' > 307 <propgroup name='facility' version='1' name-stability='Private' data-stability='Private' > 308 <propval name='type' type='uint32' value='270' /> 309 <propval name='sensor-class' type='string' value='discrete' /> 310 <propmethod name='ipmi_entity' version='0' 311 propname='entity_ref' proptype='string_array' > 312 <argval name='format' type='string_array' > 313 <argitem value='PS%d/PWROK' /> 314 </argval> 315 <argval name='offset' type='uint32' value='0' /> 316 <argval name='nparams' type='uint32' value='1' /> 317 </propmethod> 318 <propmethod name='ipmi_sensor_state' version='0' 319 propname='state' proptype='uint32' > 320 </propmethod> 321 </propgroup> 322 </facility> 323 <propgroup name='protocol' version='1' 324 name-stability='Private' data-stability='Private' > 325 <propval name='label' type='string' value='PS1' /> 326 <propmethod name='ipmi_fru_fmri' version='0' 327 propname='FRU' proptype='fmri' > 328 <argval name='entity' type='string' value='self' /> 329 </propmethod> 330 </propgroup> 331 <propgroup name='ipmi' version='1' 332 name-stability='Private' data-stability='Private' > 333 334 <propval name='entity_ref' type='string' value='PS1/PRSNT' /> 335 </propgroup> 336 <enum-method name='ipmi' version='1' /> 337 </node> 338 </range> 339 </set> 340</topology> 341