Project

General

Profile

Feature #11178

USB topology could know about supported, minimum speeds

Added by Robert Mustacchi 5 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Category:
driver - device drivers
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:

Description

With 11177, 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.

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:

hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=AA6YTC2U0F9C7T7D:part=USB-Flash-Drive:revision=1100/chassis=0/port=
3/usb-device=0
  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
ve:revision=1100/chassis=0/port=3/usb-device=0
    FRU               fmri      hc://:product-id=Joyent-S10G5:server-id=magma:chassis-id=S287161X8300740:serial=AA6YTC2U0F9C7T7D:part=USB-Flash-Dri
ve:revision=1100/chassis=0/port=3/usb-device=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: 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

History

#1

Updated by Electric Monk 4 months ago

  • Status changed from New to Closed

git commit 0d2006e4703eda0f88de2e571bf9fb317552faa2

commit  0d2006e4703eda0f88de2e571bf9fb317552faa2
Author: Robert Mustacchi <rm@joyent.com>
Date:   2019-06-14T22:23:14.000Z

    11177 usba should read the device binary object store
    11178 USB topology could know about supported, minimum speeds
    11179 usba parsing code should take const data pointers
    11176 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: Gordon Ross <gordon.ross@nexenta.com>

Also available in: Atom PDF