summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Johnston <rob.johnston@joyent.com>2019-01-05 05:29:29 +0000
committerRob Johnston <rob.johnston@joyent.com>2019-01-07 18:28:59 +0000
commit4d03e7445e0619d750cc4a6fb996d36ee745d4f4 (patch)
treea0a3fc2d5d062fe5cda15cdae6172216ccafe9b7
parent41bc442bff138d753ed92ade67e4de7adc2a2bad (diff)
downloadillumos-joyent-4d03e7445e0619d750cc4a6fb996d36ee745d4f4.tar.gz
OS-7484 need topo maps for SMCI,SSG-6049P-E1CR60L-JI006dense-shrimp
(should be complete, but need to test LEDs and verify USB ports in-person)
-rw-r--r--manifest5
-rw-r--r--usr/src/lib/fm/topo/maps/Makefile3
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/Makefile61
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-chassis-hc-topology.xml44
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-disk-hc-topology.xml100
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-hc-topology.xml112
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-slot-hc-topology.xml405
-rw-r--r--usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-usb.usbtopo85
8 files changed, 814 insertions, 1 deletions
diff --git a/manifest b/manifest
index f3e306a1dc..0ffe70a3ec 100644
--- a/manifest
+++ b/manifest
@@ -10418,6 +10418,11 @@ f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR36L-chassis-hc-topology.xml
f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR36L-hc-topology.xml 0444 root sys
f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR36L-slot-hc-topology.xml 0444 root sys
f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR36L-usb.usbtopo 0444 root sys
+f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR60L-JI006-chassis-hc-topology.xml 0444 root sys
+f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR60L-JI006-disk-hc-topology.xml 0444 root sys
+f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR60L-JI006-hc-topology.xml 0444 root sys
+f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR60L-JI006-slot-hc-topology.xml 0444 root sys
+f usr/platform/i86pc/lib/fm/topo/maps/SSG-6049P-E1CR60L-JI006-usb.usbtopo 0444 root sys
f usr/platform/i86pc/lib/fm/topo/maps/SSG-2028R-ACR24L-hc-topology.xml 0444 root sys
f usr/platform/i86pc/lib/fm/topo/maps/SSG-2028R-ACR24L-chassis-hc-topology.xml 0444 root sys
f usr/platform/i86pc/lib/fm/topo/maps/SSG-2028R-ACR24L-disk-hc-topology.xml 0444 root sys
diff --git a/usr/src/lib/fm/topo/maps/Makefile b/usr/src/lib/fm/topo/maps/Makefile
index 230609a82b..785ca78baf 100644
--- a/usr/src/lib/fm/topo/maps/Makefile
+++ b/usr/src/lib/fm/topo/maps/Makefile
@@ -22,7 +22,7 @@
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
-# Copyright (c) 2018, Joyent, Inc.
+# Copyright (c) 2019, Joyent, Inc.
#
sparc_SUBDIRS = sun4u \
@@ -55,6 +55,7 @@ i386_SUBDIRS = i86pc \
Joyent,Joyent-Storage-Platform-7001 \
SMCI,SSG-2028R-ACR24L \
SMCI,SSG-6049P-E1CR36L \
+ SMCI,SSG-6049P-E1CR60L-JI006 \
SMCI,SSG-2029P-ACR24L \
WDC,H4060-S
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/Makefile b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/Makefile
new file mode 100644
index 0000000000..0de4e774a7
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/Makefile
@@ -0,0 +1,61 @@
+#
+# 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) 2019, 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
+
+#JOYENT_USBMAPS = \
+# Joyent-Compute-Platform-3101-usb.usbtopo \
+# Joyent-Compute-Platform-3102-usb.usbtopo
+#ROOTJOYENTMAPS = $(JOYENT_PLATFORMS:%=$(arch_ROOTTOPOROOT)/%)
+#ROOTJOYENTUSB = $(JOYENT_USBMAPS:%=$(arch_ROOTTOPOROOT)/%)
+
+TOPOFILE = \
+ SSG-6049P-E1CR60L-JI006-hc-topology.xml \
+ SSG-6049P-E1CR60L-JI006-chassis-hc-topology.xml \
+ SSG-6049P-E1CR60L-JI006-disk-hc-topology.xml \
+ SSG-6049P-E1CR60L-JI006-slot-hc-topology.xml \
+ SSG-6049P-E1CR60L-JI006-usb.usbtopo
+
+SRCDIR = ../SMCI,SSG-6049P-E1CR60L-JI006
+
+PLATFORM = SSG-6049P-E1CR60L-JI006
+
+#CLOBBERFILES += $(ROOTJOYENTMAPS)
+
+include ../Makefile.map
+
+#install: $(ROOTJOYENTMAPS) $(ROOTJOYENTUSB)
+
+#
+# Note, the Joyent Compute Platform 310x is based on the SuperMicro
+# SSG-6049P-E1CR60L-JI006. Because of that, the topo map used here will work for
+# all such systems.
+#
+#$(ROOTJOYENTMAPS): SSG-6049P-E1CR60L-JI006-hc-topology.xml
+# $(RM) $@
+# $(SYMLINK) ./$? $@
+
+#$(ROOTJOYENTUSB): SSG-6049P-E1CR60L-JI006-usb.usbtopo
+# $(RM) $@
+# $(SYMLINK) ./$? $@
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-chassis-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-chassis-hc-topology.xml
new file mode 100644
index 0000000000..c2d5875dad
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-chassis-hc-topology.xml
@@ -0,0 +1,44 @@
+<?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) 2019, 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 indicator
+ -->
+ <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='Inlet Temp' />
+ <propitem value='Peripheral Temp' />
+ <propitem value='PW Consumption' />
+ <propitem value='System Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-disk-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-disk-hc-topology.xml
new file mode 100644
index 0000000000..da41b21921
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-disk-hc-topology.xml
@@ -0,0 +1,100 @@
+<?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) 2019, Joyent, Inc.
+
+-->
+
+<topology name='disk' scheme='hc'>
+ <range name='bay' min='0' max='1'>
+ <node instance='0'>
+ <facility name='fail' type='indicator' provider='fac_prov_ahci' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='0' />
+ <propmethod name='ahci_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='ident' type='indicator' provider='fac_prov_ahci' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='ahci_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='Rear Disk 0' />
+ </propgroup>
+ <propgroup name='io' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='ap-path' type='string' value='/devices/pci@0,0/pci15d9,99d@17' />
+ </propgroup>
+ <propgroup name='binding' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='occupant-path' type='string'
+ value='/pci@0,0/pci15d9,99d@17/disk@0,0' />
+ <propval name='devctl' type='string'
+ value='/devices/pci@0,0/pci15d9,99d@17:devctl' />
+ <propval name='port' type='uint32' value='4' />
+ </propgroup>
+ </node>
+ <node instance='1'>
+ <facility name='fail' type='indicator' provider='fac_prov_ahci' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='0' />
+ <propmethod name='ahci_led_mode' version='0' propname='mode'
+ proptype='uint32' mutable='1'>
+ </propmethod>
+ </propgroup>
+ </facility>
+ <facility name='ident' type='indicator' provider='fac_prov_ahci' >
+ <propgroup name='facility' version='1' name-stability='Private'
+ data-stability='Private' >
+ <propval name='type' type='uint32' value='1' />
+ <propmethod name='ahci_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='Rear Disk 1' />
+ </propgroup>
+ <propgroup name='io' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='ap-path' type='string' value='/devices/pci@0,0/pci15d9,99d@17' />
+ </propgroup>
+ <propgroup name='binding' version='1' name-stability='Private'
+ data-stability='Private'>
+ <propval name='occupant-path' type='string'
+ value='/pci@0,0/pci15d9,99d@17/disk@1,0' />
+ <propval name='devctl' type='string'
+ value='/devices/pci@0,0/pci15d9,99d@17:devctl' />
+ <propval name='port' type='uint32' value='5' />
+ </propgroup>
+ </node>
+ <dependents grouping='children'>
+ <range name='disk' min='0' max='0'>
+ <enum-method name='disk' version='1' />
+ </range>
+ </dependents>
+ </range>
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-hc-topology.xml
new file mode 100644
index 0000000000..ebfdeed9ef
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-hc-topology.xml
@@ -0,0 +1,112 @@
+<?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) 2019, 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='BPN-1 Temp' />
+ <propitem value='BPN-2 Temp' />
+ <propitem value='CPU1 Temp' />
+ <propitem value='CPU2 Temp' />
+ <propitem value='Expander1 Temp' />
+ <propitem value='Expander2 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='VRMCpu1IN Temp' />
+ <propitem value='VRMCpu1IO Temp' />
+ <propitem value='VRMCpu2IN Temp' />
+ <propitem value='VRMCpu2IO Temp' />
+ <propitem value='VRMP1ABC Temp' />
+ <propitem value='VRMP1DEF Temp' />
+ <propitem value='VRMP2ABC Temp' />
+ <propitem value='VRMP2DEF Temp' />
+ <propitem value='1.05V PCH' />
+ <propitem value='1.2V BMC' />
+ <propitem value='1.5V PCH' />
+ <propitem value='3.3VSB' />
+ <propitem value='3.3VCC' />
+ <propitem value='5VSB' />
+ <propitem value='5VCC' />
+ <propitem value='12V' />
+ </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-6049P-E1CR60L-JI006-slot' />
+ </range>
+ <range name='usb-mobo' min='0' max='256'>
+ <enum-method name='usb' version='1' />
+ </range>
+ </dependents>
+
+ </range>
+
+ <range name='chassis' min='0' max='0'>
+ <propmap name='SSG-6049P-E1CR60L-JI006-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='1'>
+ <propmap name='SSG-6049P-E1CR60L-JI006-disk' />
+ </range>
+ <range name='usb-chassis' min='0' max='256'>
+ <enum-method name='usb' version='1' />
+ </range>
+
+ </dependents>
+
+ </range>
+
+ <range name='ses-enclosure' min='0' max='2'>
+ <enum-method name='ses' version='1' />
+ </range>
+
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-slot-hc-topology.xml b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-slot-hc-topology.xml
new file mode 100644
index 0000000000..cc89b6723b
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-slot-hc-topology.xml
@@ -0,0 +1,405 @@
+<?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) 2019, 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='P1-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='P1-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='P1-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='P1-DIMMF2 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-DIMMA1 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-DIMMA2 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-DIMMB1 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-DIMMB2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='16' 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='17' 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-DIMMC2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ <node instance='18' 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='19' 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='20' 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='21' 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='22' 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='23' 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-DIMMF2 Temp' />
+ </propval>
+ </propgroup>
+ </node>
+ </range>
+ </dependents>
+ </node>
+
+ </range> <!-- slot -->
+</topology>
diff --git a/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-usb.usbtopo b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-usb.usbtopo
new file mode 100644
index 0000000000..1e50d0f021
--- /dev/null
+++ b/usr/src/lib/fm/topo/maps/SMCI,SSG-6049P-E1CR60L-JI006/SSG-6049P-E1CR60L-JI006-usb.usbtopo
@@ -0,0 +1,85 @@
+#
+# 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.
+#
+
+#
+# This file describes the USB topology for the SuperMicro
+# SSG-6049P-E1CR36L product. For more information on the format see
+# topo_usb_file.c.
+#
+
+enable-acpi-match
+port
+ label
+ Rear Upper Left USB
+ chassis
+ external
+ port-type
+ 0x3
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.HS02
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.SS02
+end-port
+
+port
+ label
+ Rear Lower Left USB
+ chassis
+ external
+ port-type
+ 0x3
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.HS01
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.SS01
+end-port
+
+port
+ label
+ Rear Upper Right USB
+ chassis
+ external
+ port-type
+ 0x3
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.HS04
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.SS04
+end-port
+
+port
+ label
+ Rear Lower Right USB
+ chassis
+ external
+ port-type
+ 0x3
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.HS03
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.SS03
+end-port
+
+port
+ label
+ Internal USB
+ internal
+ port-type
+ 0x3
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.HS10
+ acpi-path
+ \_SB_.PC00.XHCI.RHUB.SS07
+end-port