Project

General

Profile

Feature #10242

Project Tiresias: USB topology

Added by Robert Mustacchi 9 months ago. Updated 9 months ago.

Status:
Closed
Priority:
Normal
Category:
lib - userland libraries
Start date:
2019-01-16
Due date:
% Done:

100%

Estimated time:
Difficulty:
Hard
Tags:

Description

This is a ticket that goes through and adds support for USB topology to the system. It allows for us to construct topo information for these cases and enhances several cases even when we don't have a platform specific topo map. More details on the origins and design goals can be found in the RFD 147 Project Tiresias: USB Topology. This constructs a topology tree and allows a platform to declare maps that provide additional information such as labels or mapping between ports on ehci and xhci controllers.

On systems without a topology map, here's what we see in diskinfo and fmtopo for the relevant ports:


[root@haswell ~]# diskinfo -P
DISK                    VID      PID              SERIAL               FLT LOC LOCATION
c1t0d0                  SanDisk  Cruzer           20051737111B26A0CFF8 -   -   -
c2t0d0                  HITACHI  HDS7250SASUN500G 0704K90DRF -                    -   -   -
c2t1d0                  HITACHI  HDS7250SASUN500G 0704K937SF -                    -   -   -
[root@haswell ~]# /usr/lib/fm/fmd/fmtopo -V *port=*
TIME                 UUID
Nov 14 22:40:18 d5afc249-45df-e594-9954-acd32e12d3cc

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@1" "xhci0@16" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=1
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@2" "xhci0@17" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=2
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@3" "xhci0@18" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=3
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@4" "xhci0@19" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=4
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=4
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@5" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=5
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=5
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@6" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@7" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x7
    usb-vendor-id     int32     0
    usb-product-id    int32     1
    usb-revision-id   string    0
    usb-version       string    2.0
    usb-speed         string    high-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    hubd
    instance          uint32    0x0
    devfs-path        string    /pci@0,0/pci15d9,806@14/hub@7
    module            fmri      mod:///mod-name=hubd/mod-id=145

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@7.1" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=100/motherboard=0/port=6/usb-device=0/port=0/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=100/motherboard=0/port=6/usb-device=0/port=0/usb-device=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=100/motherboard=0/port=6/usb-device=0/port=0/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x1
    usb-vendor-id     int32     1367
    usb-product-id    int32     9241
    usb-revision-id   string    100
    usb-version       string    1.1
    usb-speed         string    low-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    usb_mid
    instance          uint32    0x0
    devfs-path        string    /pci@0,0/pci15d9,806@14/hub@7/device@1
    module            fmri      mod:///mod-name=usb_mid/mod-id=152

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=1
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@7.2" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=2
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@7.3" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=6/usb-device=0/port=3
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=0/motherboard=0/port=6/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@7.4" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=7
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=7
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@8" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=8
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=8
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@9" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=9
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=9
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@10" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:serial=20051737111B26A0CFF8:part=Cruzer:revision=100/motherboard=0/port=9/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:serial=20051737111B26A0CFF8:part=Cruzer:revision=100/motherboard=0/port=9/usb-device=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:serial=20051737111B26A0CFF8:part=Cruzer:revision=100/motherboard=0/port=9/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0xa
    usb-vendor-id     int32     1921
    usb-product-id    int32     21808
    usb-revision-id   string    100
    usb-version       string    2.0
    usb-vendor-name   string    SanDisk
    usb-product-name  string    Cruzer
    usb-serialno      string    20051737111B26A0CFF8
    usb-speed         string    high-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    scsa2usb
    instance          uint32    0x0
    devfs-path        string    /pci@0,0/pci15d9,806@14/storage@a
    module            fmri      mod:///mod-name=scsa2usb/mod-id=147
  group: binding                        version: 1   stability: Private/Private
    occupant-path     string    /pci@0,0/pci15d9,806@14/storage@a/disk@0,0

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:serial=20051737111B26A0CFF8:part=SanDisk-Cruzer:revision=1.01/motherboard=0/port=9/usb-device=0/disk=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:serial=20051737111B26A0CFF8:part=SanDisk-Cruzer:revision=1.01/motherboard=0/port=9/usb-device=0/disk=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:serial=20051737111B26A0CFF8:part=SanDisk-Cruzer:revision=1.01/motherboard=0/port=9/usb-device=0/disk=0
    ASRU              fmri      dev:////pci@0,0/pci15d9,806@14/storage@a/disk@0,0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: storage                        version: 1   stability: Private/Private
    logical-disk      string    c1t0d0
    manufacturer      string    SanDisk
    model             string    Cruzer
    serial-number     string    20051737111B26A0CFF8
    firmware-revision string    1.01
    capacity-in-bytes string    4004511744
  group: io                             version: 1   stability: Private/Private
    devfs-path        string    /pci@0,0/pci15d9,806@14/storage@a/disk@0,0
    phys-path         string[]  [ "/pci@0,0/pci15d9,806@14/storage@a/disk@0,0" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=10
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=10
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@11" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=11
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=11
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@12" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=12
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=12
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@13" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=13
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=13
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@14" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=14
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=14
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@15" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=15
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=15
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@20" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=16
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=16
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@21" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-connected" ]
    logical-ports     string[]  [ "ehci0@1" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x1
    usb-vendor-id     int32     32903
    usb-product-id    int32     32776
    usb-revision-id   string    4
    usb-version       string    2.0
    usb-speed         string    high-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    hubd
    instance          uint32    0x1
    devfs-path        string    /pci@0,0/pci15d9,806@1a/hub@1
    module            fmri      mod:///mod-name=hubd/mod-id=145

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.1" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=1
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.2" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=2
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.3" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=3
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.4" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=4
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=4
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.5" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=5
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=17/usb-device=0/port=5
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=17/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.6" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=18
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=18
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "ehci0@2" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-connected" ]
    logical-ports     string[]  [ "ehci0@1" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x1
    usb-vendor-id     int32     32903
    usb-product-id    int32     32768
    usb-revision-id   string    4
    usb-version       string    2.0
    usb-speed         string    high-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    hubd
    instance          uint32    0x2
    devfs-path        string    /pci@0,0/pci15d9,806@1d/hub@1
    module            fmri      mod:///mod-name=hubd/mod-id=145

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=0
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.1" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=1
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.2" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=2
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.3" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=3
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.4" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=4
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=4
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.5" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=5
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=19/usb-device=0/port=5
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789:revision=4/motherboard=0/port=19/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "ehci0@1.6" ]

hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=20
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0/port=20
    FRU               fmri      hc://:product-id=X10SLM+-LN4F:server-id=haswell:chassis-id=0123456789/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    X10SLM+-LN4F
    chassis-id        string    0123456789
    server-id         string    haswell
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "ehci0@2" ]

On the other hand, the following two entries show a system with a topo map:

DISK                    VID      PID              SERIAL               FLT LOC LOCATION
c1t0d0                  Kingston DataTraveler 2.0 00241D8CE563C1B1E94FEBB4 -   -   Internal USB
c2t5000CCA0496FCA6Dd0   HGST     HUSMH8010BSS204  0HWZGX6A             no  no  [0] Slot00
c2t5000CCA25319F125d0   HGST     HUH721212AL4200  8DGG88SZ             no  no  [0] Slot01
c2t5000CCA25318BE1Dd0   HGST     HUH721212AL4200  8DGELUWZ             no  no  [0] Slot02
c2t5000CCA2530F9CD5d0   HGST     HUH721212AL4200  8DG8L5JZ             no  no  [0] Slot03
c2t5000CCA25318BE15d0   HGST     HUH721212AL4200  8DGELUUZ             no  no  [0] Slot04
c2t5000CCA25319F745d0   HGST     HUH721212AL4200  8DGG8PDZ             no  no  [0] Slot05
c2t5000CCA2530F9C55d0   HGST     HUH721212AL4200  8DG8L4HZ             no  no  [0] Slot06
c2t5000CCA2530F9FE1d0   HGST     HUH721212AL4200  8DG8LBUZ             no  no  [0] Slot07
c2t5000CCA25319F5B9d0   HGST     HUH721212AL4200  8DGG8L6Z             no  no  [0] Slot08
c2t5000CCA25318C111d0   HGST     HUH721212AL4200  8DGEM0ZZ             no  no  [0] Slot09
c2t5000CCA25318C129d0   HGST     HUH721212AL4200  8DGEM15Z             no  no  [0] Slot10
c2t5000CCA2530F9C25d0   HGST     HUH721212AL4200  8DG8L43Z             no  no  [0] Slot11
c2t5000CCA25318BEC5d0   HGST     HUH721212AL4200  8DGELW7Z             no  no  [0] Slot12
c2t5000CCA2530F9D95d0   HGST     HUH721212AL4200  8DG8L72Z             no  no  [0] Slot13
c2t5000CCA2530F9C19d0   HGST     HUH721212AL4200  8DG8L40Z             no  no  [0] Slot14
c2t5000CCA2530F9FD9d0   HGST     HUH721212AL4200  8DG8LBSZ             no  no  [0] Slot15
c2t5000CCA25318BE19d0   HGST     HUH721212AL4200  8DGELUVZ             no  no  [0] Slot16
c2t5000CCA2530FA0A5d0   HGST     HUH721212AL4200  8DG8LEDZ             no  no  [0] Slot17
c2t5000CCA25318C1A1d0   HGST     HUH721212AL4200  8DGEM24Z             no  no  [0] Slot18
c2t5000CCA2531B0049d0   HGST     HUH721212AL4200  8DGGVAJH             no  no  [0] Slot19
c2t5000CCA25319F66Dd0   HGST     HUH721212AL4200  8DGG8MNZ             no  no  [0] Slot20
c2t5000CCA2531A4189d0   HGST     HUH721212AL4200  8DGGEMRH             no  no  [0] Slot21
c2t5000CCA2531B1025d0   HGST     HUH721212AL4200  8DGGWD8H             no  no  [0] Slot22
c2t5000CCA2531A41B9d0   HGST     HUH721212AL4200  8DGGEN3H             no  no  [0] Slot23
c2t5000CCA2530F9D75d0   HGST     HUH721212AL4200  8DG8L6UZ             no  no  [1] Slot00
c2t5000CCA25319F715d0   HGST     HUH721212AL4200  8DGG8P0Z             no  no  [1] Slot01
c2t5000CCA2531AD971d0   HGST     HUH721212AL4200  8DGGSSAH             no  no  [1] Slot02
c2t5000CCA2531A7D69d0   HGST     HUH721212AL4200  8DGGKMAH             no  no  [1] Slot03
c2t5000CCA2531A7E55d0   HGST     HUH721212AL4200  8DGGKP7H             no  no  [1] Slot04
c2t5000CCA2531A41D1d0   HGST     HUH721212AL4200  8DGGEN9H             no  no  [1] Slot05
c2t5000CCA2531AD9B5d0   HGST     HUH721212AL4200  8DGGSSWH             no  no  [1] Slot06
c2t5000CCA2530FA0A1d0   HGST     HUH721212AL4200  8DG8LEBZ             no  no  [1] Slot07
c2t5000CCA25319F6B9d0   HGST     HUH721212AL4200  8DGG8N8Z             no  no  [1] Slot08
c2t5000CCA2531AD9A1d0   HGST     HUH721212AL4200  8DGGSSRH             no  no  [1] Slot09
c2t5000CCA25308B61Dd0   HGST     HUH721212AL4200  8DG4TJ3H             no  no  [1] Slot10
c2t5000CCA25308C1C9d0   HGST     HUH721212AL4200  8DG4U96H             no  no  [1] Slot11

[root@magma ~]# /usr/lib/fm/fmd/fmtopo -V *port=*

TIME                 UUID
Nov 14 22:41:14 873d8506-913d-ee77-b7fa-8a7a26f3b569

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "xhci0@5" "xhci0@21" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "user-visible" ]
    logical-ports     string[]  [ "xhci0@6" "xhci0@22" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x6
    usb-vendor-id     int32     1367
    usb-product-id    int32     28672
    usb-revision-id   string    0
    usb-version       string    2.0
    usb-speed         string    high-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    hubd
    instance          uint32    0x0
    devfs-path        string    /pci@0,0/pci15d9,981@14/hub@6
    module            fmri      mod:///mod-name=hubd/mod-id=99

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@6.1" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=100/motherboard=0/port=1/usb-device=0/port=0/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=100/motherboard=0/port=1/usb-device=0/port=0/usb-device=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=100/motherboard=0/port=1/usb-device=0/port=0/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x1
    usb-vendor-id     int32     1367
    usb-product-id    int32     9241
    usb-revision-id   string    100
    usb-version       string    1.1
    usb-speed         string    low-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    usb_mid
    instance          uint32    0x0
    devfs-path        string    /pci@0,0/pci15d9,981@14/hub@6/device@1
    module            fmri      mod:///mod-name=usb_mid/mod-id=120

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=1
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@6.2" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=2
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@6.3" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=1/usb-device=0/port=3
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:revision=0/motherboard=0/port=1/usb-device=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    logical-ports     string[]  [ "xhci0@6.4" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=2
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Type A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "port-connected" ]
    logical-ports     string[]  [ "xhci0@7" "xhci0@23" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=3
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@8" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=4
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=4
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@9" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=5
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=5
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
    label             string    Internal USB
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" "internal-port" ]
    logical-ports     string[]  [ "xhci0@10" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=00241D8CE563C1B1E94FEBB4:part=DataTraveler-2.0:revision=100/motherboard=0/port=5/usb-device=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=00241D8CE563C1B1E94FEBB4:part=DataTraveler-2.0:revision=100/motherboard=0/port=5/usb-device=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=00241D8CE563C1B1E94FEBB4:part=DataTraveler-2.0:revision=100/motherboard=0/port=5/usb-device=0
    label             string    Internal USB
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0xa
    usb-vendor-id     int32     2352
    usb-product-id    int32     25924
    usb-revision-id   string    100
    usb-version       string    2.0
    usb-vendor-name   string    Kingston
    usb-product-name  string    DataTraveler 2.0
    usb-serialno      string    00241D8CE563C1B1E94FEBB4
    usb-speed         string    high-speed
  group: io                             version: 1   stability: Private/Private
    driver            string    scsa2usb
    instance          uint32    0x0
    devfs-path        string    /pci@0,0/pci15d9,981@14/storage@a
    module            fmri      mod:///mod-name=scsa2usb/mod-id=110
  group: binding                        version: 1   stability: Private/Private
    occupant-path     string    /pci@0,0/pci15d9,981@14/storage@a/disk@0,0

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=00241D8CE563C1B1E94FEBB4:part=Kingston-DataTraveler-2.0:revision=1.00/motherboard=0/port=5/usb-device=0/disk=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=00241D8CE563C1B1E94FEBB4:part=Kingston-DataTraveler-2.0:revision=1.00/motherboard=0/port=5/usb-device=0/disk=0
    label             string    Internal USB
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=00241D8CE563C1B1E94FEBB4:part=Kingston-DataTraveler-2.0:revision=1.00/motherboard=0/port=5/usb-device=0/disk=0
    ASRU              fmri      dev:////pci@0,0/pci15d9,981@14/storage@a/disk@0,0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: storage                        version: 1   stability: Private/Private
    logical-disk      string    c1t0d0
    manufacturer      string    Kingston
    model             string    DataTraveler 2.0
    serial-number     string    00241D8CE563C1B1E94FEBB4
    firmware-revision string    1.00
    capacity-in-bytes string    15518924800
  group: io                             version: 1   stability: Private/Private
    devfs-path        string    /pci@0,0/pci15d9,981@14/storage@a/disk@0,0
    phys-path         string[]  [ "/pci@0,0/pci15d9,981@14/storage@a/disk@0,0" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=6
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=6
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@11" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=7
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=7
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@12" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=8
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=8
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@13" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=9
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=9
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@14" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=10
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=10
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@15" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=11
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=11
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "2.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@16" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=12
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=12
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@24" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=13
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=13
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@25" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=14
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/motherboard=0/port=14
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=ZM17AS029576:revision=1.01/motherboard=0
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    Unknown
    usb-versions      string[]  [ "3.0" ]
    port-attributes   string[]  [ "port-disconnected" ]
    logical-ports     string[]  [ "xhci0@26" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=0
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0
    label             string    Rear Upper Left USB
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "user-visible" "external-port" ]
    logical-ports     string[]  [ "xhci0@2" "xhci0@18" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=1
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=1
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0
    label             string    Rear Lower Left USB
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "user-visible" "external-port" ]
    logical-ports     string[]  [ "xhci0@1" "xhci0@17" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=2
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=2
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0
    label             string    Rear Upper Right USB
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "user-visible" "external-port" ]
    logical-ports     string[]  [ "xhci0@4" "xhci0@20" ]

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=3
  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0/port=3
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740/chassis=0
    label             string    Rear Lower Right USB
  group: authority                      version: 1   stability: Private/Private
    product-id        string    Joyent-S10G5
    chassis-id        string    S287161X8300740
    server-id         string    magma
  group: port                           version: 1   stability: Private/Private
    type              string    usb
  group: usb-port                       version: 1   stability: Private/Private
    port-type         string    USB 3 Standard-A connector
    usb-versions      string[]  [ "2.0" "3.0" ]
    port-attributes   string[]  [ "user-visible" "external-port" ]
    logical-ports     string[]  [ "xhci0@3" "xhci0@19" ]

Some highlights from both:

  • The serial number of the USB device is available regardless of whether or not there is a topo file.
  • Some amount of USB 2/3 port mapping has occurred regardless of the topo file
  • With the topo file, we can see the different ports are labeled and that it shows up in diskinfo

History

#1

Updated by Robert Mustacchi 9 months ago

Tests:

  • Verified that we see generic ACPI port mapping on various systems (NUCs, Haswell client 1s, etc.)
  • Verified that we still see USB serial numbers in diskinfo even when we don't have location information.
  • Verified that a USB2 and USB 3 device showed up on all ports on an SMCI Skylake system and that the topo information was correct for it in diskinfo -P.
  • ditto on SMCI 2028-ACR
  • ditto on SMCI 6049P
  • Made sure that hubs correctly show up with child devices on them
  • Verified that usb type-c ports are correctly detected on various NUCs
  • Verified that in general, the ACPI matching code works on most systems
  • Verified that external add in cards are detected and that USB devices under them work
#2

Updated by Electric Monk 9 months ago

  • Status changed from New to Closed

git commit 672fc84a1840ce8ef60fc752e9ea374723d1135a

commit  672fc84a1840ce8ef60fc752e9ea374723d1135a
Author: Robert Mustacchi <rm@joyent.com>
Date:   2019-01-28T06:30:32.000Z

    10242 Project Tiresias: USB topology
    10243 topo_node_label_set() should take a const char* instead of char*
    Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
    Reviewed by: Rob Johnston <rob.johnston@joyent.com>
    Approved by: Richard Lowe <richlowe@richlowe.net>

Also available in: Atom PDF