11410cb93SJoshua M. Clulow#!/bin/ksh
21410cb93SJoshua M. Clulow#
31410cb93SJoshua M. Clulow# This file and its contents are supplied under the terms of the
41410cb93SJoshua M. Clulow# Common Development and Distribution License ("CDDL"), version 1.0.
51410cb93SJoshua M. Clulow# You may only use this file in accordance with the terms of version
61410cb93SJoshua M. Clulow# 1.0 of the CDDL.
71410cb93SJoshua M. Clulow#
81410cb93SJoshua M. Clulow# A full copy of the text of the CDDL should have accompanied this
91410cb93SJoshua M. Clulow# source.  A copy of the CDDL is also available via the Internet at
101410cb93SJoshua M. Clulow# http://www.illumos.org/license/CDDL.
111410cb93SJoshua M. Clulow#
121410cb93SJoshua M. Clulow
131410cb93SJoshua M. Clulow#
141410cb93SJoshua M. Clulow# Copyright (c) 2013, Joyent, Inc. All rights reserved.
151410cb93SJoshua M. Clulow#
161410cb93SJoshua M. Clulow
171410cb93SJoshua M. Clulowfunction do_node
181410cb93SJoshua M. Clulow{
191410cb93SJoshua M. Clulow  cat <<EOF
201410cb93SJoshua M. Clulow    <node instance='${1}'>
211410cb93SJoshua M. Clulow      <propgroup name='protocol' version='1' name-stability='Private'
221410cb93SJoshua M. Clulow        data-stability='Private'>
231410cb93SJoshua M. Clulow        <propval name='label' type='string' value='${2}' />
241410cb93SJoshua M. Clulow      </propgroup>
251410cb93SJoshua M. Clulow      <propgroup name='binding' version='1' name-stability='Private'
261410cb93SJoshua M. Clulow        data-stability='Private'>
271410cb93SJoshua M. Clulow        <propval name='driver' type='string' value='mpt_sas' />
281410cb93SJoshua M. Clulow        <propval name='devctl' type='string' value='${3}' />
291410cb93SJoshua M. Clulow        <propval name='enclosure' type='uint32' value='${4}' />
301410cb93SJoshua M. Clulow        <propval name='slot' type='uint32' value='${5}' />
311410cb93SJoshua M. Clulow      </propgroup>
321410cb93SJoshua M. Clulow    </node>
331410cb93SJoshua M. ClulowEOF
341410cb93SJoshua M. Clulow}
351410cb93SJoshua M. Clulow
361410cb93SJoshua M. Clulow
371410cb93SJoshua M. Clulowcat <<EOF
381410cb93SJoshua M. Clulow<topology name='disk' scheme='hc'>
391410cb93SJoshua M. Clulow  <range name='bay' min='0' max='15'>
401410cb93SJoshua M. Clulow    <facility name='fail' type='indicator' provider='fac_prov_mptsas' >
411410cb93SJoshua M. Clulow      <propgroup name='facility' version='1' name-stability='Private'
421410cb93SJoshua M. Clulow        data-stability='Private' >
431410cb93SJoshua M. Clulow        <propval name='type' type='uint32' value='0' />
441410cb93SJoshua M. Clulow        <propmethod name='mptsas_led_mode' version='0' propname='mode'
451410cb93SJoshua M. Clulow          proptype='uint32' mutable='1'>
461410cb93SJoshua M. Clulow        </propmethod>
471410cb93SJoshua M. Clulow      </propgroup>
481410cb93SJoshua M. Clulow    </facility>
491410cb93SJoshua M. Clulow    <facility name='ident' type='indicator' provider='fac_prov_mptsas' >
501410cb93SJoshua M. Clulow      <propgroup name='facility' version='1' name-stability='Private'
511410cb93SJoshua M. Clulow        data-stability='Private' >
521410cb93SJoshua M. Clulow        <propval name='type' type='uint32' value='1' />
531410cb93SJoshua M. Clulow        <propmethod name='mptsas_led_mode' version='0' propname='mode'
541410cb93SJoshua M. Clulow          proptype='uint32' mutable='1'>
551410cb93SJoshua M. Clulow        </propmethod>
561410cb93SJoshua M. Clulow      </propgroup>
571410cb93SJoshua M. Clulow    </facility>
581410cb93SJoshua M. Clulow    <facility name='ok2rm' type='indicator' provider='fac_prov_mptsas' >
591410cb93SJoshua M. Clulow      <propgroup name='facility' version='1' name-stability='Private'
601410cb93SJoshua M. Clulow        data-stability='Private' >
611410cb93SJoshua M. Clulow        <propval name='type' type='uint32' value='2' />
621410cb93SJoshua M. Clulow        <propmethod name='mptsas_led_mode' version='0' propname='mode'
631410cb93SJoshua M. Clulow          proptype='uint32' mutable='1'>
641410cb93SJoshua M. Clulow        </propmethod>
651410cb93SJoshua M. Clulow      </propgroup>
661410cb93SJoshua M. Clulow    </facility>
671410cb93SJoshua M. ClulowEOF
681410cb93SJoshua M. Clulow
691410cb93SJoshua M. Clulowenclosure=1
701410cb93SJoshua M. Clulowbay=0
711410cb93SJoshua M. Clulowslot=0
72*843d17d4SRob Johnstondevctl0='/devices/pci@0,0/pci8086,3c02@1/pci15d9,691@0:devctl'
73*843d17d4SRob Johnstondevctl1='/devices/pci@0,0/pci8086,e02@1/pci15d9,691@0:devctl'
741410cb93SJoshua M. Clulowwhile (( slot <= 7 )); do
75*843d17d4SRob Johnston  do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot
761410cb93SJoshua M. Clulow  (( bay = bay + 1 ))
771410cb93SJoshua M. Clulow  (( slot = slot + 1 ))
781410cb93SJoshua M. Clulowdone
791410cb93SJoshua M. Clulow
801410cb93SJoshua M. Clulowslot=0
81*843d17d4SRob Johnstondevctl0='/devices/pci@0,0/pci8086,3c06@2,2/pci15d9,691@0:devctl'
82*843d17d4SRob Johnstondevctl1='/devices/pci@0,0/pci8086,e06@2,2/pci15d9,691@0:devctl'
831410cb93SJoshua M. Clulowwhile (( slot <= 7 )); do
84*843d17d4SRob Johnston  do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot
851410cb93SJoshua M. Clulow  (( bay = bay + 1 ))
861410cb93SJoshua M. Clulow  (( slot = slot + 1 ))
871410cb93SJoshua M. Clulowdone
881410cb93SJoshua M. Clulow
891410cb93SJoshua M. Clulowcat <<EOF
901410cb93SJoshua M. Clulow    <dependents grouping='children'>
911410cb93SJoshua M. Clulow      <range name='disk' min='0' max='0'>
921410cb93SJoshua M. Clulow        <enum-method name='disk' version='1' />
931410cb93SJoshua M. Clulow      </range>
941410cb93SJoshua M. Clulow    </dependents>
951410cb93SJoshua M. Clulow  </range>
961410cb93SJoshua M. Clulow</topology>
971410cb93SJoshua M. ClulowEOF
98