Hello,
I'm trying to get Gen 2 working on this controller.
It drives 2 USB ports on the back panel of an ASUS Prime X399-A (latest BIOS).
ASM2142 FW is 170308_70_02_00 (seen with ASM2142A_MPTool on Windows).
On Windows 10 it uses the Microsoft xhci driver, and Gen 2 works.
On 5.3, I get :
[ 1.008270] xhci_hcd 0000:08:00.0: Host supports USB 3.0 SuperSpeed
...
[ 1.333145] usb 4-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
lsusb shows 10 Gbps support in "SuperSpeedPlus USB Device Capability" for
both the root hub and the device.
For the root hub, commit ddd57980 broke the detection, since
xhci->usb3_rhub.min_rev is 0x1 instead of expected 0x10 (SBRN is 0x30).
Reverting it changes to "Host supports USB 3.1 Enhanced SuperSpeed", and the
speed of the root hub is 10000 in sysfs.
However, I only got the device detected as "SuperSpeedPlus Gen 2 USB" once,
and the performance didn't increase, so even if the "speed" in sysfs was 10000,
I think it didn't work. After a reboot, it reverted to being detected as Gen 1.
The device (JMS580 USB Gen 2 to SATA bridge, with an SSD) seems to have a
performance issue on Gen 1 (doesn't depend on the controller or the OS), with
about 280MB/s read (almost the same without UAS).
But Gen 2 on Windows gives 510MB/s read, so even the only time Linux reported
10 Gbps speed, if it was working "hdparm -t" should have improved.
As a side note, the runtime power management doesn't seem to work either, but
since it isn't the default configuration, unless this controller is
used on laptops
it probably doesn't matter.
If the power/control of the PCIe device and its two root hubs are all set to
"auto", it is suspended if there is no USB device, and doesn't wake up on plug.
Bus 004 Device 002: ID 0578:0578 Intrinsix Corp. JMS580
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x0578 Intrinsix Corp.
idProduct 0x0578
bcdDevice 41.01
iManufacturer 1 JMicron
iProduct 2 JMS580
iSerial 3 000000001114030541CB
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0079
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 8mA
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 10 MSC USB Attached SCSI
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Command pipe (0x01)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
MaxStreams 32
Status pipe (0x02)
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 14
MaxStreams 32
Data-in pipe (0x03)
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 15
MaxStreams 32
Data-out pipe (0x04)
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 0x00000f0e
BESL Link Power Management (LPM) Supported
BESL value 3840 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 32 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
Device Status: 0x0001
Self Powered
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 5.03
iManufacturer 3 Linux 5.3.0-rc8+ xhci-hcd
iProduct 2 xHCI Host Controller
iSerial 1 0000:08:00.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x001f
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0
Hub Descriptor:
bLength 12
bDescriptorType 42
nNbrPorts 2
wHubCharacteristic 0x000a
No power switching (usb 1.0)
Per-port overcurrent protection
bPwrOn2PwrGood 10 * 2 milli seconds
bHubContrCurrent 0 milli Ampere
bHubDecLat 0.0 micro seconds
wHubDelay 0 nano seconds
DeviceRemovable 0x00
Hub Port Status:
Port 1: 0000.0203 5Gbps power U0 enable connect
Port 2: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x002b
bNumDeviceCaps 2
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x0008
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 3
Lowest fully-functional device speed is SuperSpeed (5Gbps)
bU1DevExitLat 0 micro seconds
bU2DevExitLat 0 micro seconds
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 Attribute ID: 4 5Gb/s Symmetric RX SuperSpeed
bmSublinkSpeedAttr[1] 0x000500b4
Speed Attribute ID: 4 5Gb/s Symmetric TX SuperSpeed
bmSublinkSpeedAttr[2] 0x000a4035
Speed Attribute ID: 5 10Gb/s Symmetric RX SuperSpeedPlus
bmSublinkSpeedAttr[3] 0x000a40b5
Speed Attribute ID: 5 10Gb/s Symmetric TX SuperSpeedPlus
Device Status: 0x0001
Self Powered
08:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
(prog-if 30 [XHCI])
Subsystem: ASUSTeK Computer Inc. Device 8756
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 54
NUMA node: 0
Region 0: Memory at ba300000 (64-bit, non-prefetchable) [size=32K]
Capabilities: [50] MSI: Enable+ Count=1/8 Maskable- 64bit+
Address: 00000000fee0d000 Data: 4021
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 512 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+
TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x2, ASPM L0s L1, Exit
Latency L0s <2us, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s (downgraded), Width x2 (ok)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR+,
OBFF Not Supported
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 5GT/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-
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 <?>
Capabilities: [300 v1] Latency Tolerance Reporting
Max snoop latency: 0ns
Max no snoop latency: 0ns
Kernel driver in use: xhci_hcd
[ 0.177632] pci 0000:08:00.0: [1b21:2142] type 00 class 0x0c0330
[ 0.177667] pci 0000:08:00.0: reg 0x10: [mem 0xba300000-0xba307fff 64bit]
[ 0.177853] pci 0000:08:00.0: PME# supported from D0
[ 0.177897] pci 0000:08:00.0: 8.000 Gb/s available PCIe bandwidth, limited
by 5 GT/s x2 link at 0000:02:09.0 (capable of 15.752 Gb/s with 8 GT/s x2 link)
...
[ 0.953061] xhci_hcd 0000:08:00.0: xHCI Host Controller
[ 0.953086] xhci_hcd 0000:08:00.0: new USB bus registered, assigned bus
number 3
[ 1.007915] xhci_hcd 0000:08:00.0: hcc params 0x0200ef81 hci version 0x110
quirks 0x0000000000000010
[ 1.008103] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002,
bcdDevice= 5.03
[ 1.008104] usb usb3: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 1.008105] usb usb3: Product: xHCI Host Controller
[ 1.008105] usb usb3: Manufacturer: Linux 5.3.0-rc8+ xhci-hcd
[ 1.008106] usb usb3: SerialNumber: 0000:08:00.0
[ 1.008159] hub 3-0:1.0: USB hub found
[ 1.008164] hub 3-0:1.0: 2 ports detected
[ 1.008247] xhci_hcd 0000:08:00.0: xHCI Host Controller
[ 1.008269] xhci_hcd 0000:08:00.0: new USB bus registered, assigned bus
number 4
[ 1.008270] xhci_hcd 0000:08:00.0: Host supports USB 3.0 SuperSpeed
[ 1.008296] usb usb4: We don't know the algorithms for LPM for this host,
disabling LPM.
[ 1.008306] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003,
bcdDevice= 5.03
[ 1.008307] usb usb4: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 1.008308] usb usb4: Product: xHCI Host Controller
[ 1.008308] usb usb4: Manufacturer: Linux 5.3.0-rc8+ xhci-hcd
[ 1.008309] usb usb4: SerialNumber: 0000:08:00.0
[ 1.008353] hub 4-0:1.0: USB hub found
[ 1.008358] hub 4-0:1.0: 2 ports detected
...
[ 1.333145] usb 4-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[ 1.350639] usb 4-1: New USB device found, idVendor=0578, idProduct=0578,
bcdDevice=41.01
[ 1.350640] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1.350641] usb 4-1: Product: JMS580
[ 1.350641] usb 4-1: Manufacturer: JMicron
[ 1.350642] usb 4-1: SerialNumber: 000000001114030541CB
...
[ 3.948947] scsi host10: uas
[ 3.949320] scsi 10:0:0:0: Direct-Access M4-CT128 M4SSD2 4101
PQ: 0 ANSI: 6
[ 3.949722] sd 10:0:0:0: Attached scsi generic sg1 type 0
[ 3.949875] usbcore: registered new interface driver uas
[ 3.950157] sd 10:0:0:0: [sdb] 250069680 512-byte logical blocks: (128
GB/119 GiB)
[ 3.950159] sd 10:0:0:0: [sdb] 4096-byte physical blocks
[ 3.950250] sd 10:0:0:0: [sdb] Write Protect is off
[ 3.950251] sd 10:0:0:0: [sdb] Mode Sense: 53 00 00 08
[ 3.950426] sd 10:0:0:0: [sdb] Write cache: enabled, read cache: enabled,
doesn't support DPO or FUA
[ 3.950936] sd 10:0:0:0: [sdb] Optimal transfer size 33553920 bytes not a
multiple of physical block size (4096 bytes)
[ 3.951940] sdb: sdb1 sdb2
[ 3.953018] sd 10:0:0:0: [sdb] Attached SCSI disk