Hi

I'm adding the mailing list to this reply
(removed your contact info)

USB 3.1 Gen 2 in 4.6 is not broken just because device is not seen as
SuperSpeedPlus 10Gbps device.

On 20.05.2016 02:04, Everett Wenzel wrote:
Hello,

I noticed that an FPGA was used to develop most of the USB3.1 Gen2 code.
This appears to be broken with actual devices. I have 2 startech docks,
and 2 startech hdd enclosures. I am also testing with an akitio gen2 ssd
tray.

When testing speeds with 3.0 and 3.1 ports I do notice a difference in
speeds. But dmesg and lsusb -t will never enumerate a device above
Gen1(5000m cap). It always states "new SuperSpeed device number *" in
dmesg.  I believe the code itself is broken so I was reaching out to you
for some advice, as this subject is still new and unexplored in depth.

Motherboard: https://www.asus.com/us/Motherboards/Z97AUSB_31/
Atikio: https://www.akitio.com/adapters/neutrino-bridge
Startech:
https://www.startech.com/HDD/Docking/2-bay-usb-3-1-gen-2-sata-dock~SDOCK2U
313


All parts in the chain need to support usb3.1 Gen2 capability before the speed 
of a
device is seen as SuperSpeedPlus.

1. First the xhci host controller SBRN register (Serial Bus Release Number) must
  be 3.1 (0x31). If this is true you will see this info message during boot:
  "Host supports USB 3.1 Enhanced SuperSpeed"

2. The supported protocols for ports listed in xhci extended capabilities need
   to have major and minor revisions set to 3 and 1. (3.1)
   If the xhci host has custom speed mappings (PSIC is set) then they must 
include
   the necessary settings for 3.1 10Gbps support (LP = 1 etc). If not then 
default
   speed mappings are set. Default mappings includ SSP 10Gbps support.
   The major and minor revisions can be seen with lsusb -v,
   (bcdUSB = 3.10 in device descriptor)
   If you compile the latest lsusb from sources it will also show the 
SuperSpeedPlus
    device capability with the supported speeds.

3. The device itself needs to be 3.1 capable, bcdUSB = 3.1 and it needs to have 
the
   SuperSpeedPlus device capability with the correct speeds supported.

So far I've seen two 3.1 Gen2 host controllers with SBRN set to 0x30 instead of 
0x31
So that could be a likely issue.

If this is becoming a trend we might need to work around it, or ignore checking 
sbrn.

sample outputs:
# ./lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 1: Dev 2, If 0, Class=, Driver=usb-storage, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 7: Dev 2, If 0, Class=, Driver=, 12M
    |__ Port 7: Dev 2, If 1, Class=, Driver=, 12M


** usb 3.1 root hub: **
#./lsusb -v
Bus 004 Device 001: ID 1d6b:0003
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9
  bDeviceSubClass         0
  bDeviceProtocol         3
  ...
Hub Descriptor:
  ...
Binary Object Store Descriptor:
  ...
  SuperSpeed USB Device Capability:
  ...
  SuperSpeedPlus USB Device Capability:
    bLength                28
    bDescriptorType        16
    bDevCapabilityType     10
    bmAttributes         0x00000023
      Sublink Speed Attribute count 3
      Sublink Speed ID count 1
    wFunctionalitySupport   0x0001
    bmSublinkSpeedAttr[0]   0x00050034
      Speed attr ID: 4 5Gb/s SuperSpeed
    bmSublinkSpeedAttr[1]   0x000500b4
      Speed attr ID: 4 5Gb/s SuperSpeed
    bmSublinkSpeedAttr[2]   0x000a4035
      Speed attr ID: 5 10Gb/s SuperSpeedPlus
    bmSublinkSpeedAttr[3]   0x000a40b5
      Speed attr ID: 5 10Gb/s SuperSpeedPlus

** usb 3.1 mass storage device **
#./lsusb -v
Bus 004 Device 002: ID 174c:1351
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  ...
  iManufacturer           2 Generic
  iProduct                3 USB3.1 Device
Binary Object Store Descriptor:
  USB 2.0 Extension Device Capability:
  SuperSpeed USB Device Capability:
    ...
  SuperSpeedPlus USB Device Capability:
    bLength                20
    bDescriptorType        16
    bDevCapabilityType     10
    bmAttributes         0x00000001
      Sublink Speed Attribute count 1
      Sublink Speed ID count 0
    wFunctionalitySupport   0x1100
    bmSublinkSpeedAttr[0]   0x000a4030
      Speed attr ID: 0 10Gb/s SuperSpeedPlus
    bmSublinkSpeedAttr[1]   0x000a40b0
      Speed attr ID: 0 10Gb/s SuperSpeedPlus

-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to