OS-7704: USB topology could know about supported, minimum speeds


Issue Type:Improvement
Priority:4 - Normal
Created at:2019-04-05T00:54:32.080Z
Updated at:2019-04-23T22:33:14.021Z


Created by:Former user
Reported by:Former user
Assigned to:Former user


Fixed: A fix for this issue is checked into the tree and tested.
(Resolution Date: 2019-04-23T22:33:14.010Z)

Fix Versions

2019-04-25 Queen of Jordan (Release Date: 2019-04-25)


With OS-7703, for a class of USB devices we will now be able to determine what the set of supported speeds they can operate at are and what the minimum speed required for full functionality is. We should go through and plumb these through in topo, when available.


Comment by Former user
Created at 2019-04-05T20:29:05.158Z
Updated at 2019-04-16T17:52:03.854Z

I tested this by building on top of OS-7703 and then verifying that USB 3.x compatible devices now displayed the new topo fields, regardless of whether they were plugged into a USB 2.x or USB 3.x hub or port. This added two properties: usb-supported-speeds and usb-minimum-speed. The following is an example of what this looks like for a USB 3.x device:

  group: protocol                       version: 1   stability: Private/Private
    resource          fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=AA6YTC2U0F9C7T7D:part=USB-Flash-Dri
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=AA6YTC2U0F9C7T7D:part=USB-Flash-Dri
    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: usb-properties                 version: 1   stability: Private/Private
    usb-port          uint32    0x13
    usb-vendor-id     int32     1500
    usb-product-id    int32     43064
    usb-revision-id   string    1100
    usb-version       string    3.0
    usb-vendor-name   string    Lexar
    usb-product-name  string    USB Flash Drive
    usb-serialno      string    AA6YTC2U0F9C7T7D
    usb-speed         string    super-speed
    usb-minimum-speed string    high-speed
    usb-supported-speeds string[]  [ "high-speed" "super-speed" ]
  group: io                             version: 1   stability: Private/Private
    driver            string    scsa2usb
    instance          uint32    0x1
    devfs-path        string    /pci@0,0/pci15d9,981@14/storage@13
    module            fmri      mod:///mod-name=scsa2usb/mod-id=115
  group: binding                        version: 1   stability: Private/Private
    occupant-path     string    /pci@0,0/pci15d9,981@14/storage@13/disk@0,0

Comment by Former user
Created at 2019-04-11T16:56:00.744Z

> verifying that USB 3.x compatible devices now displayed the new topo fields, regardless of whether they were plugged into a device.

I'm not sure what the end of this sentence is supposed to say?

Comment by Jira Bot
Created at 2019-04-23T22:30:32.343Z

illumos-joyent commit 0cba37f035f83ba6fad928fce41542860dfb62cd (branch master, by Robert Mustacchi)

OS-7703 usba should read the device binary object store
OS-7704 USB topology could know about supported, minimum speeds
OS-7705 usba parsing code should take const data pointers
OS-7706 usba kernel module should be CERRWARN and smatch clean
Reviewed by: John Levon <john.levon@joyent.com>
Reviewed by: Rob Johnston <rob.johnston@joyent.com>
Approved by: John Levon <john.levon@joyent.com>