1 #!/bin/ksh 2 # 3 # This file and its contents are supplied under the terms of the 4 # Common Development and Distribution License ("CDDL"), version 1.0. 5 # You may only use this file in accordance with the terms of version 6 # 1.0 of the CDDL. 7 # 8 # A full copy of the text of the CDDL should have accompanied this 9 # source. A copy of the CDDL is also available via the Internet at 10 # http://www.illumos.org/license/CDDL. 11 # 12 13 # 14 # Copyright (c) 2012, Joyent, Inc. All rights reserved. 15 # 16 17 function do_node 18 { 19 cat <<EOF 20 <node instance='${1}'> 21 <propgroup name='protocol' version='1' name-stability='Private' 22 data-stability='Private'> 23 <propval name='label' type='string' value='${2}' /> 24 </propgroup> 25 <propgroup name='binding' version='1' name-stability='Private' 26 data-stability='Private'> 27 <propval name='driver' type='string' value='mpt_sas' /> 28 <propval name='devctl' type='string' value='${3}' /> 29 <propval name='enclosure' type='uint32' value='${4}' /> 30 <propval name='slot' type='uint32' value='${5}' /> 31 </propgroup> 32 </node> 33 EOF 34 } 35 36 37 cat <<EOF 38 <topology name='disk' scheme='hc'> 39 <range name='bay' min='0' max='15'> 40 <facility name='fail' type='indicator' provider='fac_prov_mptsas' > 41 <propgroup name='facility' version='1' name-stability='Private' 42 data-stability='Private' > 43 <propval name='type' type='uint32' value='0' /> 44 <propmethod name='mptsas_led_mode' version='0' propname='mode' 45 proptype='uint32' mutable='1'> 46 </propmethod> 47 </propgroup> 48 </facility> 49 <facility name='ident' type='indicator' provider='fac_prov_mptsas' > 50 <propgroup name='facility' version='1' name-stability='Private' 51 data-stability='Private' > 52 <propval name='type' type='uint32' value='1' /> 53 <propmethod name='mptsas_led_mode' version='0' propname='mode' 54 proptype='uint32' mutable='1'> 55 </propmethod> 56 </propgroup> 57 </facility> 58 <facility name='ok2rm' type='indicator' provider='fac_prov_mptsas' > 59 <propgroup name='facility' version='1' name-stability='Private' 60 data-stability='Private' > 61 <propval name='type' type='uint32' value='2' /> 62 <propmethod name='mptsas_led_mode' version='0' propname='mode' 63 proptype='uint32' mutable='1'> 64 </propmethod> 65 </propgroup> 66 </facility> 67 EOF 68 69 enclosure=1 70 bay=0 71 disk=0 72 slot=0 73 devctl='/devices/pci@0,0/pci8086,3c02@1/pci15d9,691@0:devctl' 74 while (( slot <= 7 )); do 75 do_node $bay "Front Disk $disk" "$devctl" $enclosure $slot 76 (( bay = bay + 1 )) 77 (( disk = disk + 1 )) 78 (( slot = slot + 1 )) 79 done 80 81 slot=0 82 devctl='/devices/pci@0,0/pci8086,3c06@2,2/pci15d9,691@0:devctl' 83 while (( slot <= 7 )); do 84 do_node $bay "Front Disk $disk" "$devctl" $enclosure $slot 85 (( bay = bay + 1 )) 86 (( disk = disk + 1 )) 87 (( slot = slot + 1 )) 88 done 89 90 cat <<EOF 91 <dependents grouping='children'> 92 <range name='disk' min='0' max='0'> 93 <enum-method name='disk' version='1' /> 94 </range> 95 </dependents> 96 </range> 97 </topology> 98 EOF