summaryrefslogtreecommitdiff
path: root/usr/src/lib/fm
diff options
context:
space:
mode:
authorRob Johnston <rob.johnston@joyent.com>2019-01-11 16:24:20 +0000
committerRobert Mustacchi <rm@joyent.com>2019-01-18 23:38:45 +0000
commit843d17d4abe05f84e05c00cec4744ac30763ca76 (patch)
treebaba09c1763eb461d2d248355a3adc2be9a20fce /usr/src/lib/fm
parentcff040f3ef42d16ae655969398f5a5e6e700b85e (diff)
downloadillumos-gate-843d17d4abe05f84e05c00cec4744ac30763ca76.tar.gz
10223 Want topo maps for various SMCI systems
Reviewed by: Robert Mustacchi <rm@joyent.com> Reviewed by: Richard Lowe <richlowe@richlowe.net> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src/lib/fm')
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-1101/Joyent-Compute-Platform-1101-disk-hc-topology.xmlgenksh10
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-3301-hc-topology.xml251
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-chassis-hc-topology.xml43
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-fan-hc-topology.xml127
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Makefile49
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-chassis-hc-topology.xml43
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-hc-topology.xml89
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-slot-hc-topology.xml277
-rw-r--r--usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Makefile33
-rw-r--r--usr/src/lib/fm/topo/maps/Makefile8
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/Makefile65
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-chassis-hc-topology.xml42
-rwxr-xr-xusr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-disk-hc-topology.xmlgenksh108
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-hc-topology.xml98
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-slot-hc-topology.xml277
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/Makefile51
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-chassis-hc-topology.xml43
-rwxr-xr-xusr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-disk-hc-topology.xmlgenksh143
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-hc-topology.xml96
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-slot-hc-topology.xml277
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/Makefile47
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-chassis-hc-topology.xml43
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-hc-topology.xml87
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-slot-hc-topology.xml277
24 files changed, 2579 insertions, 5 deletions
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-1101/Joyent-Compute-Platform-1101-disk-hc-topology.xmlgenksh b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-1101/Joyent-Compute-Platform-1101-disk-hc-topology.xmlgenksh
index 000742db71..874bad142f 100644
--- a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-1101/Joyent-Compute-Platform-1101-disk-hc-topology.xmlgenksh
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-1101/Joyent-Compute-Platform-1101-disk-hc-topology.xmlgenksh
@@ -69,17 +69,19 @@ EOF
enclosure=1
bay=0
slot=0
-devctl='/devices/pci@0,0/pci8086,3c02@1/pci15d9,691@0:devctl'
+devctl0='/devices/pci@0,0/pci8086,3c02@1/pci15d9,691@0:devctl'
+devctl1='/devices/pci@0,0/pci8086,e02@1/pci15d9,691@0:devctl'
while (( slot <= 7 )); do
- do_node $bay "Front Disk $bay" "$devctl" $enclosure $slot
+ do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot
(( bay = bay + 1 ))
(( slot = slot + 1 ))
done
slot=0
-devctl='/devices/pci@0,0/pci8086,3c06@2,2/pci15d9,691@0:devctl'
+devctl0='/devices/pci@0,0/pci8086,3c06@2,2/pci15d9,691@0:devctl'
+devctl1='/devices/pci@0,0/pci8086,e06@2,2/pci15d9,691@0:devctl'
while (( slot <= 7 )); do
- do_node $bay "Front Disk $bay" "$devctl" $enclosure $slot
+ do_node $bay "Front Disk $bay" "$devctl0|$devctl1" $enclosure $slot
(( bay = bay + 1 ))
(( slot = slot + 1 ))
done
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-3301-hc-topology.xml b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-3301-hc-topology.xml
new file mode 100644
index 0000000000..000ed261a8
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-3301-hc-topology.xml
@@ -0,0 +1,251 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+-->
+
+<topology name='i86pc' scheme='hc'>
+
+ <range name='motherboard' min='0' max='0'>
+ <enum-method name='smbios' version='1' />
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <facility name='3.3V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='3.3V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='5V AUX PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='5V AUX PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='1.05V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='1.05V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='BP0 5V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='BP0 5V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='5V SWITCH PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='5V SWITCH PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='VCCIO PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='VCCIO PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='NDC PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='2.5V AUX PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='1.5V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='1.5V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='BP1 5V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='BP1 5V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='BP2 5V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='BP2 5V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='1.5V AUX PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='1.5V AUX PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='1.05V PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='1.05V PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='DIMM PG' type='sensor' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='269' />
+ <propval name='sensor-class' type='string' value='discrete' />
+ <propval name='entity_ref' type='string_array' >
+ <propitem value='DIMM PG' />
+ </propval>
+ <propmethod name='ipmi_sensor_state' version='0'
+ propname='state' proptype='uint32' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='protocol' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='label' type='string' value='MB' />
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-id' type='uint32' value='7' />
+ <propval name='entity-instance' type='uint32' value='1' />
+ <propval name='entity-list' type='string_array' >
+ <propitem value='CMOS Battery' />
+ <propitem value='Dedicated NIC' />
+ <propitem value='LCD Cable Pres' />
+ <propitem value='NDC PG' />
+ <propitem value='Riser Config Err' />
+ <propitem value='Riser 2 Presence' />
+ <propitem value='Riser 3 Presence' />
+ <propitem value='USB Cable Pres' />
+ <propitem value='VGA Cable Pres' />
+ </propval>
+ </propgroup>
+
+ </node> <!-- motherboard -->
+
+ <dependents grouping='children'>
+ <range name='chip' min='0' max='1'>
+ <enum-method name='chip' version='1' />
+ </range>
+ <range name='hostbridge' min='0' max='254'>
+ <enum-method name='hostbridge' version='1' />
+ </range>
+ <range name='sp' min='0' max='0'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='slot' min='0' max='23'>
+ <enum-method name='smbios' version='1' />
+ </range>
+ </dependents>
+
+ </range>
+
+ <range name='chassis' min='0' max='0'>
+ <propmap name='Joyent-Compute-Platform-330x-chassis' />
+
+ <dependents grouping='children'>
+
+ <range name='psu' min='0' max='1'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='fan' min='0' max='5'>
+ <propmap name='Joyent-Compute-Platform-330x-fan' />
+ </range>
+
+ </dependents>
+
+ </range>
+
+ <range name='ses-enclosure' min='0' max='1'>
+ <enum-method name='ses' version='1' />
+ </range>
+
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-chassis-hc-topology.xml b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-chassis-hc-topology.xml
new file mode 100644
index 0000000000..20dbc301eb
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-chassis-hc-topology.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+-->
+
+<topology name='chassis' scheme='hc'>
+ <range name='chassis' min='0' max='0'>
+ <node instance='0'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <!--
+ chassis locate LED
+ -->
+ <facility name='locate' type='indicator' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='chassis_ident_mode' version='0'
+ propname='mode' proptype='uint32' mutable='1' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Intrusion' />
+ <propitem value='Pwr Consumption' />
+ <propitem value='Inlet Temp' />
+ <propitem value='Exhaust Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-fan-hc-topology.xml b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-fan-hc-topology.xml
new file mode 100644
index 0000000000..5284971c19
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Joyent-Compute-Platform-330x-fan-hc-topology.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+-->
+
+<topology name='fan' scheme='hc'>
+ <range name='fan' min='0' max='5'>
+ <node instance='0'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='FAN 1' />
+ <propmethod name='ipmi_fru_fmri' version='0' propname='FRU'
+ proptype='fmri'>
+ <argval name='entity' type='string' value='self' />
+ </propmethod>
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Fan1' />
+ </propval>
+ </propgroup>
+ <enum-method name='ipmi' version='1' />
+ </node>
+ <node instance='1'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='FAN 2' />
+ <propmethod name='ipmi_fru_fmri' version='0' propname='FRU'
+ proptype='fmri'>
+ <argval name='entity' type='string' value='self' />
+ </propmethod>
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Fan2' />
+ </propval>
+ </propgroup>
+ <enum-method name='ipmi' version='1' />
+ </node>
+ <node instance='2'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='FAN 3' />
+ <propmethod name='ipmi_fru_fmri' version='0' propname='FRU'
+ proptype='fmri'>
+ <argval name='entity' type='string' value='self' />
+ </propmethod>
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Fan3' />
+ </propval>
+ </propgroup>
+ <enum-method name='ipmi' version='1' />
+ </node>
+ <node instance='3'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='FAN 4' />
+ <propmethod name='ipmi_fru_fmri' version='0' propname='FRU'
+ proptype='fmri'>
+ <argval name='entity' type='string' value='self' />
+ </propmethod>
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Fan4' />
+ </propval>
+ </propgroup>
+ <enum-method name='ipmi' version='1' />
+ </node>
+ <node instance='4'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='FAN 5' />
+ <propmethod name='ipmi_fru_fmri' version='0' propname='FRU'
+ proptype='fmri'>
+ <argval name='entity' type='string' value='self' />
+ </propmethod>
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Fan5' />
+ </propval>
+ </propgroup>
+ <enum-method name='ipmi' version='1' />
+ </node>
+ <node instance='5'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='FAN 6' />
+ <propmethod name='ipmi_fru_fmri' version='0' propname='FRU'
+ proptype='fmri'>
+ <argval name='entity' type='string' value='self' />
+ </propmethod>
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Fan6' />
+ </propval>
+ </propgroup>
+ <enum-method name='ipmi' version='1' />
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Makefile b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Makefile
new file mode 100644
index 0000000000..677a099c43
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Compute-Platform-330x/Makefile
@@ -0,0 +1,49 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2018, Joyent, Inc.
+#
+
+ARCH = i86pc
+CLASS = arch
+DTDFILE = topology.dtd.1
+OTHER_VARIANTS = \
+ Joyent-Compute-Platform-3302-hc-topology.xml
+
+ROOTJOYENTMAPS = $(OTHER_VARIANTS:%=$(arch_ROOTTOPOROOT)/%)
+
+TOPOFILE = \
+ Joyent-Compute-Platform-3301-hc-topology.xml \
+ Joyent-Compute-Platform-330x-chassis-hc-topology.xml \
+ Joyent-Compute-Platform-330x-fan-hc-topology.xml
+
+SRCDIR = ../Joyent,Joyent-Compute-Platform-330x
+
+PLATFORM = Joyent-Compute-Platform-330x
+
+CLOBBERFILES += $(ROOTJOYENTMAPS)
+
+include ../Makefile.map
+
+install: $(ROOTJOYENTMAPS)
+
+#
+# The JCP-3301 and JCP-3302 are essentially the same underlying hardware. The
+# only significant difference is the JCP-3302 uses SSDs internally instead of
+# traditional disks. As such, the same platform topo map should work for
+# both platforms so we simply create a symlink from the JCP 3301 map for the
+# JCP 3302.
+#
+$(ROOTJOYENTMAPS): Joyent-Compute-Platform-3301-hc-topology.xml
+ $(RM) $@
+ $(SYMLINK) ./$? $@
+
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-chassis-hc-topology.xml b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-chassis-hc-topology.xml
new file mode 100644
index 0000000000..d71085a615
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-chassis-hc-topology.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='chassis' scheme='hc'>
+ <range name='chassis' min='0' max='0'>
+ <node instance='0'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <!--
+ chassis locate LED
+ -->
+ <facility name='locate' type='indicator' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='chassis_ident_mode' version='0'
+ propname='mode' proptype='uint32' mutable='1' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Chassis Intru' />
+ <propitem value='System Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-hc-topology.xml b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-hc-topology.xml
new file mode 100644
index 0000000000..915e3ccfb0
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-hc-topology.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='i86pc' scheme='hc'>
+
+ <range name='motherboard' min='0' max='0'>
+ <enum-method name='smbios' version='1' />
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='label' type='string' value='MB' />
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='MB_10G Temp' />
+ <propitem value='PCH Temp' />
+ <propitem value='Peripheral Temp' />
+ <propitem value='5VSB' />
+ <propitem value='5VSB' />
+ <propitem value='3.3VSB' />
+ <propitem value='3.3VCC' />
+ <propitem value='1.5V PCH' />
+ <propitem value='1.2V BMC' />
+ <propitem value='1.05V PCH' />
+ <propitem value='12V' />
+ <propitem value='5VCC' />
+ <propitem value='VBAT' />
+ <propitem value='VDIMMAB' />
+ <propitem value='VDIMMCD' />
+ <propitem value='VDIMMEF' />
+ <propitem value='VDIMMGH' />
+ </propval>
+ </propgroup>
+ </node>
+
+ <dependents grouping='children'>
+ <range name='chip' min='0' max='1'>
+ <enum-method name='chip' version='1' />
+ </range>
+ <range name='hostbridge' min='0' max='254'>
+ <enum-method name='hostbridge' version='1' />
+ </range>
+ <range name='sp' min='0' max='0'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='slot' min='0' max='15'>
+ <enum-method name='smbios' version='1' />
+ <propmap name='Joyent-Storage-Platform-7001-slot' />
+ </range>
+ </dependents>
+
+ </range>
+
+ <range name='chassis' min='0' max='0'>
+ <propmap name='Joyent-Storage-Platform-7001-chassis' />
+
+ <dependents grouping='children'>
+
+ <range name='psu' min='0' max='1'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='fan' min='0' max='7'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+
+ </dependents>
+ </range>
+
+ <range name='ses-enclosure' min='0' max='1'>
+ <enum-method name='ses' version='1' />
+ </range>
+
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-slot-hc-topology.xml b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-slot-hc-topology.xml
new file mode 100644
index 0000000000..6b16063427
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Joyent-Storage-Platform-7001-slot-hc-topology.xml
@@ -0,0 +1,277 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='slot' scheme='hc'>
+ <range name='slot' min='0' max='15'>
+ <node instance='0' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='1' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='2' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMB1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='3' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMB2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='4' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMC1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='5' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMC2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='6' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='7' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='8' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMME1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='9' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMME2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='10' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='11' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='12' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMG1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='13' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMG2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='14' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMH1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='15' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMH2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ </range> <!-- slot -->
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Makefile b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Makefile
new file mode 100644
index 0000000000..bffc198721
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/Joyent,Joyent-Storage-Platform-7001/Makefile
@@ -0,0 +1,33 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2018, Joyent, Inc.
+#
+
+# NOTE: The name of the xml file we are building is 'platform'
+# specific, but its build is structured as 'arch' specific since
+# 'uname -i' on all x86 platforms returns i86pc.
+
+ARCH = i86pc
+CLASS = arch
+DTDFILE = topology.dtd.1
+
+TOPOFILE = \
+ Joyent-Storage-Platform-7001-hc-topology.xml \
+ Joyent-Storage-Platform-7001-chassis-hc-topology.xml \
+ Joyent-Storage-Platform-7001-slot-hc-topology.xml
+
+SRCDIR = ../Joyent,Joyent-Storage-Platform-7001
+
+PLATFORM = Joyent-Storage-Platform-7001
+
+include ../Makefile.map
diff --git a/usr/src/lib/fm/topo/maps/Makefile b/usr/src/lib/fm/topo/maps/Makefile
index a01b016ebe..a35419192f 100644
--- a/usr/src/lib/fm/topo/maps/Makefile
+++ b/usr/src/lib/fm/topo/maps/Makefile
@@ -22,6 +22,7 @@
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
+# Copyright (c) 2018, Joyent, Inc.
#
sparc_SUBDIRS = sun4u \
@@ -49,7 +50,12 @@ i386_SUBDIRS = i86pc \
SUNW,Sun-Fire-X4500 \
SUNW,Sun-Fire-X4540 \
SUNW,Sun-Fire-X4600-M2 \
- Joyent,Joyent-Compute-Platform-1101
+ Joyent,Joyent-Compute-Platform-1101 \
+ Joyent,Joyent-Compute-Platform-330x \
+ Joyent,Joyent-Storage-Platform-7001 \
+ SMCI,SSG-2028R-ACR24L \
+ SMCI,SSG-6049P-E1CR36L \
+ SMCI,SSG-2029P-ACR24L
SUBDIRS = $($(MACH)_SUBDIRS)
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/Makefile b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/Makefile
new file mode 100644
index 0000000000..15401c3abb
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/Makefile
@@ -0,0 +1,65 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+# Copyright (c) 2018, Joyent, Inc.
+#
+
+# NOTE: The name of the xml file we are building is 'platform'
+# specific, but its build is structured as 'arch' specific since
+# 'uname -i' on all x86 platforms returns i86pc.
+
+ARCH = i86pc
+CLASS = arch
+DTDFILE = topology.dtd.1
+JOYENT_PLATFORMS = \
+ Joyent-Compute-Platform-3101-hc-topology.xml \
+ Joyent-Compute-Platform-3102-hc-topology.xml
+
+ROOTJOYENTMAPS = $(JOYENT_PLATFORMS:%=$(arch_ROOTTOPOROOT)/%)
+
+TOPOFILE = \
+ SSG-2028R-ACR24L-hc-topology.xml \
+ SSG-2028R-ACR24L-chassis-hc-topology.xml \
+ SSG-2028R-ACR24L-disk-hc-topology.xml \
+ SSG-2028R-ACR24L-slot-hc-topology.xml
+
+SRCDIR = ../SMCI,SSG-2028R-ACR24L
+
+PLATFORM = SSG-2028R-ACR24L
+
+CLOBBERFILES += $(ROOTJOYENTMAPS) SSG-2028R-ACR24L-disk-hc-topology.xml
+
+include ../Makefile.map
+
+install: $(ROOTJOYENTMAPS)
+
+#
+# Note, the Joyent Compute Platform 310x is based on the SuperMicro
+# SSG-2028R-ACR24L. Because of that, the topo map used here will work for all
+# such systems.
+#
+$(ROOTJOYENTMAPS): SSG-2028R-ACR24L-hc-topology.xml
+ $(RM) $@
+ $(SYMLINK) ./$? $@
+
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-chassis-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-chassis-hc-topology.xml
new file mode 100644
index 0000000000..8a53632472
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-chassis-hc-topology.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+ Copyright (c) 2017, Joyent, Inc.
+
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+-->
+
+<topology name='chassis' scheme='hc'>
+ <range name='chassis' min='0' max='0'>
+ <node instance='0'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <!--
+ chassis locate LED
+ -->
+ <facility name='locate' type='indicator' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='chassis_ident_mode' version='0'
+ propname='mode' proptype='uint32' mutable='1' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Chassis Intru' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-disk-hc-topology.xmlgenksh b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-disk-hc-topology.xmlgenksh
new file mode 100755
index 0000000000..0f4b6c9731
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-disk-hc-topology.xmlgenksh
@@ -0,0 +1,108 @@
+#!/bin/ksh
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2017, Joyent, Inc.
+#
+
+#
+# Generate the topology map for an expanderless system with 3 bays. HBAs
+# are in slots 1, 3, and 5.
+#
+
+function do_node
+{
+ cat <<EOF
+ <node instance='${1}'>
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='${2}' />
+ </propgroup>
+ <propgroup name='binding' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='driver' type='string' value='mpt_sas' />
+ <propval name='devctl' type='string' value='${3}' />
+ <propval name='enclosure' type='uint32' value='${4}' />
+ <propval name='slot' type='uint32' value='${5}' />
+ </propgroup>
+ </node>
+EOF
+}
+
+
+cat <<EOF
+<topology name='disk' scheme='hc'>
+ <range name='bay' min='0' max='23'>
+ <facility name='fail' type='indicator' provider='fac_prov_mptsas' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='0' />
+ <propmethod name='mptsas_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='ident' type='indicator' provider='fac_prov_mptsas' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='mptsas_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='ok2rm' type='indicator' provider='fac_prov_mptsas' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='2' />
+ <propmethod name='mptsas_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+EOF
+
+enclosure=1
+bay=0
+slot=0
+devctl0='/devices/pci@0,0/pci8086,6f04@2/pci15d9,808@0:devctl'
+while (( slot <= 7 )); do
+ do_node $bay "Front Disk $bay" "$devctl0" $enclosure $slot
+ (( bay = bay + 1 ))
+ (( slot = slot + 1 ))
+done
+
+slot=0
+devctl0='/devices/pci@0,0/pci8086,6f08@3/pci15d9,808@0:devctl'
+while (( slot <= 7 )); do
+ do_node $bay "Front Disk $bay" "$devctl0" $enclosure $slot
+ (( bay = bay + 1 ))
+ (( slot = slot + 1 ))
+done
+
+slot=0
+devctl0='/devices/pci@78,0/pci8086,6f02@1/pci15d9,808@0:devctl'
+while (( slot <= 7 )); do
+ do_node $bay "Front Disk $bay" "$devctl0" $enclosure $slot
+ (( bay = bay + 1 ))
+ (( slot = slot + 1 ))
+done
+
+cat <<EOF
+ <dependents grouping='children'>
+ <range name='disk' min='0' max='0'>
+ <enum-method name='disk' version='1' />
+ </range>
+ </dependents>
+ </range>
+</topology>
+EOF
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-hc-topology.xml
new file mode 100644
index 0000000000..8406db227d
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-hc-topology.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+Copyright (c) 2018, Joyent, Inc.
+
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+-->
+
+<topology name='i86pc' scheme='hc'>
+
+ <range name='motherboard' min='0' max='0'>
+ <enum-method name='smbios' version='1' />
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='label' type='string' value='MB' />
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='MB_10G Temp' />
+ <propitem value='PCH Temp' />
+ <propitem value='Peripheral Temp' />
+ <propitem value='5VSB' />
+ <propitem value='5VSB' />
+ <propitem value='3.3VSB' />
+ <propitem value='3.3VCC' />
+ <propitem value='1.5V PCH' />
+ <propitem value='1.2V BMC' />
+ <propitem value='1.05V PCH' />
+ <propitem value='12V' />
+ <propitem value='5VCC' />
+ <propitem value='VBAT' />
+ <propitem value='VDIMMAB' />
+ <propitem value='VDIMMCD' />
+ <propitem value='VDIMMEF' />
+ <propitem value='VDIMMGH' />
+ </propval>
+ </propgroup>
+ </node>
+
+ <dependents grouping='children'>
+ <range name='chip' min='0' max='100'>
+ <enum-method name='chip' version='1' />
+ </range>
+ <range name='hostbridge' min='0' max='254'>
+ <enum-method name='hostbridge' version='1' />
+ </range>
+ <range name='sp' min='0' max='0'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='slot' min='0' max='15'>
+ <enum-method name='smbios' version='1' />
+ <propmap name='SSG-2028R-ACR24L-slot' />
+ </range>
+ </dependents>
+
+ </range>
+
+ <range name='chassis' min='0' max='0'>
+ <propmap name='SSG-2028R-ACR24L-chassis' />
+
+ <dependents grouping='children'>
+
+ <range name='psu' min='0' max='1'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='fan' min='0' max='100'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='bay' min='0' max='23'>
+ <propmap name='SSG-2028R-ACR24L-disk' />
+ </range>
+
+ </dependents>
+
+ </range>
+
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-slot-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-slot-hc-topology.xml
new file mode 100644
index 0000000000..6b16063427
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2028R-ACR24L/SSG-2028R-ACR24L-slot-hc-topology.xml
@@ -0,0 +1,277 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='slot' scheme='hc'>
+ <range name='slot' min='0' max='15'>
+ <node instance='0' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='1' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='2' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMB1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='3' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMB2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='4' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMC1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='5' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMC2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='6' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='7' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='8' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMME1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='9' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMME2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='10' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='11' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='12' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMG1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='13' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMG2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='14' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMH1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='15' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMH2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ </range> <!-- slot -->
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/Makefile b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/Makefile
new file mode 100644
index 0000000000..0cd1c11a20
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/Makefile
@@ -0,0 +1,51 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2018, Joyent, Inc.
+#
+
+# NOTE: The name of the xml file we are building is 'platform'
+# specific, but its build is structured as 'arch' specific since
+# 'uname -i' on all x86 platforms returns i86pc.
+
+ARCH = i86pc
+CLASS = arch
+DTDFILE = topology.dtd.1
+JOYENT_PLATFORMS = \
+ Joyent-M12G5-hc-topology.xml
+
+ROOTJOYENTMAPS = $(JOYENT_PLATFORMS:%=$(arch_ROOTTOPOROOT)/%)
+
+TOPOFILE = \
+ SSG-2029P-ACR24L-hc-topology.xml \
+ SSG-2029P-ACR24L-chassis-hc-topology.xml \
+ SSG-2029P-ACR24L-disk-hc-topology.xml \
+ SSG-2029P-ACR24L-slot-hc-topology.xml
+
+SRCDIR = ../SMCI,SSG-2029P-ACR24L
+
+PLATFORM = SSG-2029P-ACR24L
+
+CLOBBERFILES += SSG-2029P-ACR24L-disk-hc-topology.xml
+
+include ../Makefile.map
+
+install: $(ROOTJOYENTMAPS)
+
+#
+# Note, the Joyent M12G5 is based on the SuperMicro SSG-2029P-ACR24L.
+# Because of that, the topo map used here will work for all such
+# systems.
+#
+$(ROOTJOYENTMAPS): SSG-2029P-ACR24L-hc-topology.xml
+ $(RM) $@
+ $(SYMLINK) ./$? $@
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-chassis-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-chassis-hc-topology.xml
new file mode 100644
index 0000000000..8f1d790414
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-chassis-hc-topology.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+ Copyright (c) 2018, Joyent, Inc.
+
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+-->
+
+<topology name='chassis' scheme='hc'>
+ <range name='chassis' min='0' max='0'>
+ <node instance='0'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <!--
+ chassis locate LED
+ -->
+ <facility name='locate' type='indicator' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='chassis_ident_mode' version='0'
+ propname='mode' proptype='uint32' mutable='1' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Chassis Intru' />
+ <propitem value='System Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-disk-hc-topology.xmlgenksh b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-disk-hc-topology.xmlgenksh
new file mode 100755
index 0000000000..327c41c53b
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-disk-hc-topology.xmlgenksh
@@ -0,0 +1,143 @@
+#!/bin/ksh
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2018, Joyent, Inc.
+#
+
+#
+# Generate the topology map for an expanderless system with 24 bays. HBAs are
+# in slots 2, 4, and 6. Additionally, there are two rear-facing SATA drive
+# bays, connected to the SATA headers on the motherboard.
+#
+
+function do_sas_node
+{
+ cat <<EOF
+ <node instance='${1}'>
+ <facility name='fail' type='indicator' provider='fac_prov_mptsas' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='0' />
+ <propmethod name='mptsas_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='ident' type='indicator' provider='fac_prov_mptsas' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='mptsas_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='ok2rm' type='indicator' provider='fac_prov_mptsas' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='2' />
+ <propmethod name='mptsas_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='${2}' />
+ </propgroup>
+ <propgroup name='binding' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='driver' type='string' value='mpt_sas' />
+ <propval name='devctl' type='string' value='${3}' />
+ <propval name='enclosure' type='uint32' value='${4}' />
+ <propval name='slot' type='uint32' value='${5}' />
+ </propgroup>
+ </node>
+EOF
+}
+
+function do_sata_node
+{
+ bay=$1
+ bay_inst=$2
+ #
+ # There are six SATA headers on the motherboard, which represent
+ # targets 0-5. The two rear-facing SATA bays are connected to the two
+ # headers associated with targets 4 and 5.
+ #
+ (( target = bay + 4 ))
+ hpath="/pci@0,0/pci15d9,981@11,5"
+ tpath="/disk@${target},0"
+ cat <<EOF
+ <node instance='$bay_inst'>
+ <propgroup name='protocol' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='label' type='string' value='Rear Disk $bay' />
+ </propgroup>
+ <propgroup name='io' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='ap-path' type='string' value='/devices${hpath}:$target' />
+ </propgroup>
+ <propgroup name='binding' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='occupant-path' type='string'
+ value='$hpath$tpath' />
+ </propgroup>
+ </node>
+EOF
+}
+
+
+cat <<EOF
+<topology name='disk' scheme='hc'>
+ <range name='bay' min='0' max='25'>
+EOF
+
+enclosure=1
+bay=0
+slot=0
+devctl0='/devices/pci@7d,0/pci8086,2030@0/pci15d9,808@0:devctl'
+while (( slot <= 7 )); do
+ do_sas_node $bay "Front Disk $bay" "$devctl0" $enclosure $slot
+ (( bay = bay + 1 ))
+ (( slot = slot + 1 ))
+done
+
+slot=0
+devctl0='/devices/pci@cd,0/pci8086,2030@0/pci15d9,808@0:devctl'
+while (( slot <= 7 )); do
+ do_sas_node $bay "Front Disk $bay" "$devctl0" $enclosure $slot
+ (( bay = bay + 1 ))
+ (( slot = slot + 1 ))
+done
+
+slot=0
+devctl0='/devices/pci@56,0/pci8086,2030@0/pci15d9,808@0:devctl'
+while (( slot <= 7 )); do
+ do_sas_node $bay "Front Disk $bay" "$devctl0" $enclosure $slot
+ (( bay = bay + 1 ))
+ (( slot = slot + 1 ))
+done
+
+do_sata_node 0 24
+do_sata_node 1 25
+
+cat <<EOF
+ <dependents grouping='children'>
+ <range name='disk' min='0' max='0'>
+ <enum-method name='disk' version='1' />
+ </range>
+ </dependents>
+ </range>
+</topology>
+EOF
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-hc-topology.xml
new file mode 100644
index 0000000000..68182bfef3
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-hc-topology.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+-->
+<topology name='i86pc' scheme='hc'>
+
+ <range name='motherboard' min='0' max='0'>
+ <enum-method name='smbios' version='1' />
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='label' type='string' value='MB' />
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='1.05V PCH' />
+ <propitem value='1.8V PCH' />
+ <propitem value='3.3VSB' />
+ <propitem value='3.3VCC' />
+ <propitem value='5VCC' />
+ <propitem value='5VSB' />
+ <propitem value='12V' />
+ <propitem value='MB_10G Temp' />
+ <propitem value='PCH Temp' />
+ <propitem value='Peripheral Temp' />
+ <propitem value='PVNN PCH' />
+ <propitem value='VBAT' />
+ <propitem value='Vcpu1' />
+ <propitem value='Vcpu2' />
+ <propitem value='VDIMMP1ABC' />
+ <propitem value='VDIMMP1DEF' />
+ <propitem value='VDIMMP2ABC' />
+ <propitem value='VDIMMP2DEF' />
+ <propitem value='VRMCpu1SA Temp' />
+ <propitem value='VRMCpu1IO Temp' />
+ <propitem value='VRMCpu1CCH Temp' />
+ <propitem value='VRMCpu2SA Temp ' />
+ <propitem value='VRMCpu2IO Temp' />
+ <propitem value='VRMP1ABC Temp' />
+ <propitem value='VRMP1DEF Temp' />
+ <propitem value='VRMP2ABC Temp' />
+ <propitem value='VRMP2DEF Temp' />
+ </propval>
+ </propgroup>
+ </node>
+
+ <dependents grouping='children'>
+ <range name='chip' min='0' max='100'>
+ <enum-method name='chip' version='1' />
+ </range>
+ <range name='hostbridge' min='0' max='254'>
+ <enum-method name='hostbridge' version='1' />
+ </range>
+ <range name='sp' min='0' max='0'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='slot' min='0' max='15'>
+ <enum-method name='smbios' version='1' />
+ <propmap name='SSG-2029P-ACR24L-slot' />
+ </range>
+ </dependents>
+
+ </range>
+
+ <range name='chassis' min='0' max='0'>
+ <propmap name='SSG-2029P-ACR24L-chassis' />
+
+ <dependents grouping='children'>
+
+ <range name='psu' min='0' max='1'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='fan' min='0' max='7'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='bay' min='0' max='25'>
+ <propmap name='SSG-2029P-ACR24L-disk' />
+ </range>
+
+ </dependents>
+
+ </range>
+
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-slot-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-slot-hc-topology.xml
new file mode 100644
index 0000000000..29dcc6d206
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-2029P-ACR24L/SSG-2029P-ACR24L-slot-hc-topology.xml
@@ -0,0 +1,277 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='slot' scheme='hc'>
+ <range name='slot' min='0' max='15'>
+ <node instance='0' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='1' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='2' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMB1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='3' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMC1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='4' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='5' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='6' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMME1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='7' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='8' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMA1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='9' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMA2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='10' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMB1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='11' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMC1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='12' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMD1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='13' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMD2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='14' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMME1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='15' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ </range> <!-- slot -->
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/Makefile b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/Makefile
new file mode 100644
index 0000000000..eeaf0c9045
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/Makefile
@@ -0,0 +1,47 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright (c) 2018, Joyent, Inc.
+#
+
+# NOTE: The name of the xml file we are building is 'platform'
+# specific, but its build is structured as 'arch' specific since
+# 'uname -i' on all x86 platforms returns i86pc.
+
+ARCH = i86pc
+CLASS = arch
+DTDFILE = topology.dtd.1
+JOYENT_PLATFORMS = \
+ Joyent-S10G5-hc-topology.xml
+
+ROOTJOYENTMAPS = $(JOYENT_PLATFORMS:%=$(arch_ROOTTOPOROOT)/%)
+
+TOPOFILE = \
+ SSG-6049P-E1CR36L-hc-topology.xml \
+ SSG-6049P-E1CR36L-chassis-hc-topology.xml \
+ SSG-6049P-E1CR36L-slot-hc-topology.xml
+
+SRCDIR = ../SMCI,SSG-6049P-E1CR36L
+
+PLATFORM = SSG-6049P-E1CR36L
+
+include ../Makefile.map
+
+install: $(ROOTJOYENTMAPS)
+#
+# Note, the Joyent S10G5 is based on the SuperMicro SSG-6049P-E1CR36L.
+# Because of that, the topo map used here will work for all such
+# systems.
+#
+$(ROOTJOYENTMAPS): SSG-6049P-E1CR36L-hc-topology.xml
+ $(RM) $@
+ $(SYMLINK) ./$? $@
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-chassis-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-chassis-hc-topology.xml
new file mode 100644
index 0000000000..346f77966e
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-chassis-hc-topology.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='chassis' scheme='hc'>
+ <range name='chassis' min='0' max='0'>
+ <node instance='0'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <!--
+ chassis locate LED
+ -->
+ <facility name='locate' type='indicator' provider='fac_prov_ipmi' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='chassis_ident_mode' version='0'
+ propname='mode' proptype='uint32' mutable='1' >
+ </propmethod>
+ </propgroup>
+ </facility>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='Chassis Intru' />
+ <propitem value='System Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-hc-topology.xml
new file mode 100644
index 0000000000..f3f7311249
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-hc-topology.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='i86pc' scheme='hc'>
+
+ <range name='motherboard' min='0' max='0'>
+ <enum-method name='smbios' version='1' />
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='protocol' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='label' type='string' value='MB' />
+ </propgroup>
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='PCH Temp' />
+ <propitem value='Peripheral Temp' />
+ <propitem value='MB_10G Temp' />
+ <propitem value='12V' />
+ <propitem value='5VCC' />
+ <propitem value='3.3VCC' />
+ <propitem value='VDimmP1ABC' />
+ <propitem value='VDimmP1DEF' />
+ <propitem value='VDimmP2ABC' />
+ <propitem value='VDimmP2DEF' />
+ <propitem value='5SVB' />
+ <propitem value='3.3VSB' />
+ <propitem value='1.8V PCH' />
+ <propitem value='PVNN PCH' />
+ <propitem value='1.05V PCH' />
+ </propval>
+ </propgroup>
+ </node>
+
+ <dependents grouping='children'>
+ <range name='chip' min='0' max='1'>
+ <enum-method name='chip' version='1' />
+ </range>
+ <range name='hostbridge' min='0' max='254'>
+ <enum-method name='hostbridge' version='1' />
+ </range>
+ <range name='sp' min='0' max='0'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='slot' min='0' max='15'>
+ <enum-method name='smbios' version='1' />
+ <propmap name='SSG-6049P-E1CR36L-slot' />
+ </range>
+ </dependents>
+
+ </range>
+
+ <range name='chassis' min='0' max='0'>
+ <propmap name='SSG-6049P-E1CR36L-chassis' />
+
+ <dependents grouping='children'>
+
+ <range name='psu' min='0' max='1'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+ <range name='fan' min='0' max='7'>
+ <enum-method name='ipmi' version='1' />
+ </range>
+
+ </dependents>
+ </range>
+
+ <range name='ses-enclosure' min='0' max='1'>
+ <enum-method name='ses' version='1' />
+ </range>
+
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-slot-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-slot-hc-topology.xml
new file mode 100644
index 0000000000..d367c42744
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR36L/SSG-6049P-E1CR36L-slot-hc-topology.xml
@@ -0,0 +1,277 @@
+<?xml version="1.0"?>
+<!DOCTYPE topology SYSTEM "/usr/share/lib/xml/dtd/topology.dtd.1">
+<!--
+
+ This file and its contents are supplied under the terms of the
+ Common Development and Distribution License ("CDDL"), version 1.0.
+ You may only use this file in accordance with the terms of version
+ 1.0 of the CDDL.
+
+ A full copy of the text of the CDDL should have accompanied this
+ source. A copy of the CDDL is also available via the Internet at
+ http://www.illumos.org/license/CDDL.
+
+ Copyright (c) 2018, Joyent, Inc.
+
+-->
+
+<topology name='slot' scheme='hc'>
+ <range name='slot' min='0' max='15'>
+ <node instance='0' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='1' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMA2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='2' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMB1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='3' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMC2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='4' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='5' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMD2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='6' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMME1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='7' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P1-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='8' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMA1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='9' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMA2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='10' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMB1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='11' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMC1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='12' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMD1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='13' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMD2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='14' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMME1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='15' static='true'>
+ <dependents grouping='children'>
+ <range name='dimm' min='0' max='0'>
+ <node instance='0' static='true'>
+ <fac-enum provider='fac_prov_ipmi' />
+ <propgroup name='ipmi' version='1'
+ name-stability='Private' data-stability='Private' >
+ <propval name='entity-list' type='string_array' >
+ <propitem value='P2-DIMMF1 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ </range> <!-- slot -->
+</topology>