Thread (22 messages) 22 messages, 5 authors, 2022-01-13

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

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2021-03-10 01:20:27

Thinh Nguyen wrote:
Hi,

William Allen wrote:
quoted
Thank you! I tested your patches and got a little bit of success. The
dmesg output now shows the drive connecting at SuperSpeedPlus Gen 2,
which is inline with the 5.11.2-arch1-1 kernel, but shows the same
failure messages, except under the "scsi" facility, rather than the
"ses" facility


5.12.0-rc2-next-20210309-2-next-git (manually added your patches to
the PKGBUILD file)
-------------------------------------------------
usb 5-1: new SuperSpeedPlus Gen 2 USB device number 2 using xhci_hcd
It seems like you did not apply all the patches I provided. It wouldn't
just print "Gen 2" here if you had applied all the patches. If the SSP
rate is unknown, it would just print "SuperSpeed Plus".

Refer to this patch:
https://patchwork.kernel.org/project/linux-usb/patch/d7049743924adf82f93ddfe403a5ebb9ac06e49b.1612410491.git.Thinh.Nguyen@synopsys.com/

Please apply all 8 of the patches here:
https://patchwork.kernel.org/project/linux-usb/list/?series=427561

If there are still issues, I can provide some debugging patches.

BR,
Thinh

quoted
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 host12: uas
scsi 12:0:0:0: Direct-Access     WD       Game Drive       1003 PQ: 0 ANSI: 6
scsi 12:0:0:1: Enclosure         WD       SES Device       1003 PQ: 0 ANSI: 6
sd 12:0:0:0: [sdi] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
sd 12:0:0:0: [sdi] Write Protect is off
sd 12:0:0:0: [sdi] Mode Sense: 57 00 10 00
sd 12:0:0:0: [sdi] Write cache: enabled, read cache: enabled, supports
DPO and FUA
sd 12:0:0:0: [sdi] Optimal transfer size 33553920 bytes
scsi 12:0:0:1: Failed to get diagnostic page 0x1
scsi 12:0:0:1: Failed to bind enclosure -19
BTW, this failure is unrelated to which speed the device is connected
as. The device should just work regardless of the connected speed.
Something else is wrong here. It could be a problem with the device not
responding to a SCSI command correctly (often I find many UASP devices
don't properly handle/respond correctly for an unsupported command).

You can force the device to run with BOT protocol instead of UASP since
it's less likely to run into this problem. (Add the 'u' quirk to ignore
UAS).

Thanks,
Thinh
quoted
sd 12:0:0:0: [sdi] Attached SCSI disk
ses 12:0:0:1: Attached Enclosure device


The drive also now connects at 10000M, whereas before it was
connecting at 5000M.
I still am not seeing anything relating to Gen 2x2 speeds.


I checked the listed lanes, which IS showing new information. Value of:
/sys/bus/usb/devices/usb5/rx_lanes = 2
/sys/bus/usb/devices/usb5/tx_lanes = 2


Here is the output of lsusb -vvv for the device:
-------------------------------------------------
Bus 005 Device 002: ID 1058:2642 Western Digital Technologies, Inc. Game Drive
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x1058 Western Digital Technologies, Inc.
  idProduct          0x2642
  bcdDevice           10.03
  iManufacturer           2 Western Digital
  iProduct                3 Game Drive
  iSerial                 1 323130334431343030303736
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0079
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              896mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     98
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-in pipe (0x03)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Data-out pipe (0x04)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
        MaxStreams             32
        Status pipe (0x02)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               0
        Command pipe (0x01)
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x002a
  bNumDeviceCaps          3
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x0000f41e
      BESL Link Power Management (LPM) Supported
    BESL value     1024 us
    Deep BESL value    61440 us
  SuperSpeed USB Device Capability:
    bLength                10
    bDescriptorType        16
    bDevCapabilityType      3
    bmAttributes         0x00
    wSpeedsSupported   0x000e
      Device can operate at Full Speed (12Mbps)
      Device can operate at High Speed (480Mbps)
      Device can operate at SuperSpeed (5Gbps)
    bFunctionalitySupport   1
      Lowest fully-functional device speed is Full Speed (12Mbps)
    bU1DevExitLat          10 micro seconds
    bU2DevExitLat        2047 micro seconds
  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 Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
    bmSublinkSpeedAttr[1]   0x000a40b0
      Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Bus Powered)


And here is output of lspci relating to the ASM3242:
-------------------------------------------------
04:00.0 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
     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr+ Stepping- SERR- FastB2B- DisINTx+
     Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
     Latency: 0, Cache Line Size: 64 bytes
     Interrupt: pin A routed to IRQ 62
     Region 0: Memory at f7df0000 (64-bit, non-prefetchable) [size=32K]
     Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
          Address: 0000000000000000  Data: 0000
     Capabilities: [68] MSI-X: Enable+ Count=8 Masked-
          Vector table: BAR=0 offset=00002000
          PBA: BAR=0 offset=00002080
     Capabilities: [78] Power Management version 3
          Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
          Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
     Capabilities: [80] Express (v2) Legacy Endpoint, MSI 00
          DevCap:   MaxPayload 512 bytes, PhantFunc 0, Latency L0s
<64ns, L1 <2us
               ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
          DevCtl:   CorrErr- NonFatalErr+ FatalErr+ UnsupReq-
               RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
               MaxPayload 256 bytes, MaxReadReq 4096 bytes
          DevSta:   CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
          LnkCap:   Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit
Latency L1 unlimited
               ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
          LnkCtl:   ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
               ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
          LnkSta:   Speed 8GT/s (ok), Width x4 (ok)
               TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
          DevCap2: Completion Timeout: Range A, TimeoutDis- NROPrPrP- LTR+
                10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt+
EETLPPrefix-
                EmergencyPowerReduction Not Supported,
EmergencyPowerReductionInit-
                FRS-
                AtomicOpsCap: 32bit- 64bit- 128bitCAS-
          DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR-
OBFF Disabled,
                AtomicOpsCtl: ReqEn-
          LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink-
Retimer- 2Retimers- DRS-
          LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
                Compliance De-emphasis: -6dB
          LnkSta2: Current De-emphasis Level: -6dB,
EqualizationComplete+ EqualizationPhase1+
                EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
                Retimer- 2Retimers- CrosslinkRes: unsupported
     Capabilities: [c0] Subsystem: ASMedia Technology Inc. Device 0201
     Capabilities: [100 v1] Advanced Error Reporting
          UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
          UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
          UESvrt:   DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
          CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
          CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
          AERCap:   First Error Pointer: 00, ECRCGenCap+ ECRCGenEn-
ECRCChkCap- ECRCChkEn-
               MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
          HeaderLog: 00000000 00000000 00000000 00000000
     Capabilities: [200 v1] Secondary PCI Express
          LnkCtl3: LnkEquIntrruptEn- PerformEqu-
          LaneErrStat: LaneErr at lane: 0 1 2 3
     Capabilities: [300 v1] Latency Tolerance Reporting
          Max snoop latency: 0ns
          Max no snoop latency: 0ns
     Capabilities: [400 v1] L1 PM Substates
          L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
L1_PM_Substates+
                 PortCommonModeRestoreTime=0us PortTPowerOnTime=10us
          L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                  T_CommonMode=0us LTR1.2_Threshold=0ns
          L1SubCtl2: T_PwrOn=0us
     Kernel driver in use: xhci_hcd
     Kernel modules: xhci_pci

On Tue, Mar 9, 2021 at 6:00 AM Mathias Nyman
[off-list ref] wrote:


quoted
quoted
quoted
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://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-usb/list/?series=427561__;!!A4F2R9G_pg!O509Jgp-IveN9AmXa5oORW98Q_B4_GyjbA5RSAXFuZaexHl4jhm8G9dWbImQUw4CrNZJ$ 

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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help