Re: Workaround required for Texas Instruments USB3 re-driver

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

 



Hi Alexis,

Quach, Brian wrote:
> Hello,
> 
> I work for Texas Instruments on the group that develops our USB 3.0
> products. Recently, we discovered a timing issue in our USB3.0
> re-drivers that can delay the negotiation between a device and the
> host past the usual handshake timeout, and if that happens on the
> first insertion, the host controller port will enter in Compliance
> mode as per the xHCI spec. The host controller does not generate a

  I think I faced this problem some days ago with a SilverStone Treasure
TS04B external HDD case. It has ASM1051 A1 chipset, claiming to be
ASM2105. For some reason, this (high-speed-only) does not happen
with another device (MANHATTAN USB3.0 to SATA dongle rev. 3.04 (Model
No. 150705) which also reports itself to contain ASM2105.
  Sometimes when I plugged in the device for the first time it was NOT
recognized at all. And if I remember right there was nothing logged using
usbmon. On sub-sequent re-connect of the device is caught up, yes.
The TS04B device always only at high-speed.

  Would you please comment what could be the difference between the two
devices with supposedly same chip? Firmware?

> Port Status Change (PSC) event as a result of a transition to
> compliance mode so the only way method to detect and resolve the
> issue is to periodically poll the port to check for compliance mode
> and issue a Warm Reset to recover the port. This polling is only
> required if the port had never previously entered U0.
> 
> We implemented a small app to monitor the device's PORTSC registers
> and to issue a warm reset whenever we find the port is in compliance
> mode. Although this seems to work-around the issue, we believe this
> should be implemented on the driver source code for robustness.
> 
> Due to your bandwidth limitations, I was told that we should be
> making our own patches and submitting them to you for integration
> into the mainline. Based on the information I provided about the
> issue, can you provide any advice on how/where the source code the
> patch should be implemented so that it will be acceptable for the
> mainline and whether it should be a menuconfig option.


  Is the below different visible to the user what you describe above?

--- MANHATTAN_via_TI.lsusb      2012-05-10 22:20:07.000000000 +0200
+++ SilverStone_TS04B_via_TI.lsusb   2012-05-03 11:55:50.000000000 +0200
@@ -1,23 +1,23 @@
-Bus 004 Device 009: ID 174c:5106 ASMedia Technology Inc. 
+Bus 003 Device 003: ID 174c:5106 ASMedia Technology Inc. 
 Device Descriptor:
   bLength                18
   bDescriptorType         1
-  bcdUSB               3.00
+  bcdUSB               2.10
   bDeviceClass            0 (Defined at Interface level)
   bDeviceSubClass         0 
   bDeviceProtocol         0 
-  bMaxPacketSize0         9
+  bMaxPacketSize0        64
   idVendor           0x174c ASMedia Technology Inc.
   idProduct          0x5106 
   bcdDevice            0.01
   iManufacturer           2 ASMedia
   iProduct                3 AS2105
-  iSerial                 1             Z1F09686
+  iSerial                 1      WD-WX51C10U8155
   bNumConfigurations      1
   Configuration Descriptor:
     bLength                 9
     bDescriptorType         2
-    wTotalLength           44
+    wTotalLength           32
     bNumInterfaces          1
     bConfigurationValue     1
     iConfiguration          0 
@@ -42,9 +42,8 @@
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
-        wMaxPacketSize     0x0400  1x 1024 bytes
+        wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
-        bMaxBurst              15
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
@@ -53,33 +52,8 @@
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
-        wMaxPacketSize     0x0400  1x 1024 bytes
+        wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
-        bMaxBurst              15
-Binary Object Store Descriptor:
-  bLength                 5
-  bDescriptorType        15
-  wTotalLength           22
-  bNumDeviceCaps          2
-  USB 2.0 Extension Device Capability:
-    bLength                 7
-    bDescriptorType        16
-    bDevCapabilityType      2
-    bmAttributes   0x00000002
-      Link Power Management (LPM) Supported
-  SuperSpeed USB Device Capability:
-    bLength                10
-    bDescriptorType        16
-    bDevCapabilityType      3
-    bmAttributes         0x00
-      Latency Tolerance Messages (LTM) Supported
-    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
 Device Status:     0x0001
   Self Powered


Thank you for the info. Will there be a new hardware revision of the chip?
It is not possible to correct using newer firmware, right?

Martin

> 
> Thanks and Best Regards,
> Alexis Cortes.

--
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


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

  Powered by Linux