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) 2013, 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 slot=0 72 devctl0='/devices/pci@0,0/pci8086,3c02@1/pci15d9,691@0:devctl' 73 devctl1='/devices/pci@0,0/pci8086,e02@1/pci15d9,691@0:devctl' 74 while (( slot <= 7 )); do 75 do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot 76 (( bay = bay + 1 )) 77 (( slot = slot + 1 )) 78 done 79 80 slot=0 81 devctl0='/devices/pci@0,0/pci8086,3c06@2,2/pci15d9,691@0:devctl' 82 devctl1='/devices/pci@0,0/pci8086,e06@2,2/pci15d9,691@0:devctl' 83 while (( slot <= 7 )); do 84 do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot 85 (( bay = bay + 1 )) 86 (( slot = slot + 1 )) 87 done 88 89 cat <<EOF 90 <dependents grouping='children'> 91 <range name='disk' min='0' max='0'> 92 <enum-method name='disk' version='1' /> 93 </range> 94 </dependents> 95 </range> 96 </topology> 97 EOF