Re: USB 3.2 Gen 2x2 "Superspeed+20GBps" support for ASM3242

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9.3.2021 9.27, Thinh Nguyen wrote:
> + 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.

Thanks for the reminder, added some comments to the series

-Mathias




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux