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 17function 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> 33EOF 34} 35 36 37cat <<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> 67EOF 68 69enclosure=1 70bay=0 71slot=0 72devctl0='/devices/pci@0,0/pci8086,3c02@1/pci15d9,691@0:devctl' 73devctl1='/devices/pci@0,0/pci8086,e02@1/pci15d9,691@0:devctl' 74while (( slot <= 7 )); do 75 do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot 76 (( bay = bay + 1 )) 77 (( slot = slot + 1 )) 78done 79 80slot=0 81devctl0='/devices/pci@0,0/pci8086,3c06@2,2/pci15d9,691@0:devctl' 82devctl1='/devices/pci@0,0/pci8086,e06@2,2/pci15d9,691@0:devctl' 83while (( slot <= 7 )); do 84 do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot 85 (( bay = bay + 1 )) 86 (( slot = slot + 1 )) 87done 88 89cat <<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> 97EOF 98