+ Mathias Hi, William Allen wrote: > I've never submitted to the mailing list before, so please excuse any > formalities that I may not be observing. > I would like to be able to use USB 3.2 Gen2x2 "SuperSpeed+²⁰Gbps" > under Linux. I've tried several different kernel versions, and have > built the kernel from the usb-next tree. All without finding proper > functionality. > > I have an Ableconn PEX-UB159 USB 3.2 Gen 2x2 PCIe expansion card, with > the ASM3242 controller. This controller appears to be the only Gen2x2 > capable controller that exists in commercial products- so far as I've > found. Everything appears to work, except for "SuperSpeed+²⁰Gbps" when > I plug in a capable device. > Here is the dmesg output as soon as I plug in a Gen2x2 WD P50 Black > External NVMe SSD, using an appropriate SuperSpeed+²⁰Gbps certified > cable: > 5.11.2-arch1-1 > -------------------- > usb 7-2: new SuperSpeedPlus Gen 2 USB device number 3 using xhci_hcd > usb 7-2: New USB device found, idVendor=1058, idProduct=2642, bcdDevice=10.03 > usb 7-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1 > usb 7-2: Product: Game Drive > usb 7-2: Manufacturer: Western Digital > usb 7-2: SerialNumber: 323130334431343030303736 > scsi host11: uas > scsi 11:0:0:0: Direct-Access WD Game Drive 1003 PQ: 0 ANSI: 6 > scsi 11:0:0:1: Enclosure WD SES Device 1003 PQ: 0 ANSI: 6 > sd 11:0:0:0: [sdf] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB) > sd 11:0:0:0: [sdf] Write Protect is off > sd 11:0:0:0: [sdf] Mode Sense: 57 00 10 00 > sd 11:0:0:0: [sdf] Write cache: enabled, read cache: enabled, supports > DPO and FUA > sd 11:0:0:0: [sdf] Optimal transfer size 33553920 bytes > sd 11:0:0:0: [sdf] Attached SCSI disk > > When I saw commits referring to Gen2x2 in the usb-next repo, I built > off that, and also ran linux-next-git.r0.gabaf6f60176f-1 from AUR, > both giving me the same results/output: > linux-next-git.r0.gabaf6f60176f-1 > ---------------------------------------------- > usb 5-1: new SuperSpeed Gen 1x2 USB device number 3 using xhci_hcd > usb 5-1: New USB device found, idVendor=1058, idProduct=2642, bcdDevice=10.03 > usb 5-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1 > usb 5-1: Product: Game Drive > usb 5-1: Manufacturer: Western Digital > usb 5-1: SerialNumber: 323130334431343030303736 > scsi host7: uas > scsi 7:0:0:0: Direct-Access WD Game Drive 1003 PQ: 0 ANSI: 6 > scsi 7:0:0:1: Enclosure WD SES Device 1003 PQ: 0 ANSI: 6 > ses 7:0:0:1: Attached Enclosure device > ses 7:0:0:1: Failed to get diagnostic page 0x1 > ses 7:0:0:1: Failed to bind enclosure -19 > sd 7:0:0:0: [sdf] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB) > sd 7:0:0:0: [sdf] Write Protect is off > sd 7:0:0:0: [sdf] Mode Sense: 57 00 10 00 > sd 7:0:0:0: [sdf] Write cache: enabled, read cache: enabled, supports > DPO and FUA > sd 7:0:0:0: [sdf] Optimal transfer size 33553920 bytes > sd 7:0:0:0: [sdf] Attached SCSI disk > > See that it's detecting it as Gen 1x2. > The output of lsusb -t shows that it is connected at 5000M using the > uas driver. Even my much slower USB 3.1 SSDs connect at 10000M on the > exact same port. > When I attach the Gen2x2 NVMe SSD to my other 3.2 Gen2 card, it > connects at 10000M, so It seems to be directly related to a > mishandling when the Gen2x2 device gets recognized by the Gen2x2 card. > > lspci output from 5.11.2-arch1-1: > ------------------------------------------- > USB controller: ASMedia Technology Inc. ASM3242 USB 3.2 Host > Controller (prog-if 30 [XHCI]) > Subsystem: ASMedia Technology Inc. ASM3242 USB 3.2 Host Controller > Physical Slot: 1 > Flags: bus master, fast devsel, latency 0, IRQ 62, NUMA node 0 > Memory at f7df0000 (64-bit, non-prefetchable) [size=32K] > Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+ > Capabilities: [68] MSI-X: Enable+ Count=8 Masked- > Capabilities: [78] Power Management version 3 > Capabilities: [80] Express Legacy Endpoint, MSI 00 > Capabilities: [c0] Subsystem: ASMedia Technology Inc. Device 0201 > Capabilities: [100] Advanced Error Reporting > Capabilities: [200] Secondary PCI Express > Capabilities: [300] Latency Tolerance Reporting > Capabilities: [400] L1 PM Substates > Kernel driver in use: xhci_hcd > Kernel modules: xhci_pci > > I'm happy to test anything, or file this somewhere more appropriate if > you could point me in the right direction. Currently the usb host stack doesn't really support USB 3.2 yet, at least the speed check part. I made some updates to handle that. You apply these patches and test on your setup https://patchwork.kernel.org/project/linux-usb/list/?series=427561 Hopefully Mathias will have time to review and Ack them for the next release cycle. BR, Thinh