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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html