TK1 USB-OTG 3.0 Only Runs in USB High Speed when Host

Hi,

We cannot seem to get USBO1 on the TK1 to operate at super speed (SS) mode. lsusb output:

Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub <----USBH4
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub <----USBH2
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub <----USBO1
  • TK1 image is 2.7b3-20170630 (not the mainline one).
  • We tried on both our own board we rolled, as well as the Ixora V1.0A, and got similar results.
  • SS devices enumerate as high speed (HS) on USBO1 and USBH2, but enumerate as SS on USBH4.
  • We made the modifications to enable USB3.0 (same as the TX1 board requirements).
  • We are using the same USB3.0 connector on our board for USBO1 and USBH4, on the Ixora board we are using the bottom of X8 (with the jumper set appropriately).
  • USBO1 gets assigned the eHCI driver instead of the xHCI driver like USBH4 and USBH2.

My understanding is that if we ground the USBO1_ID pin it will run in host mode all the time (same as setting jumper JP2 on the Ixora board), which should be SS capable. But on both the Ixora and our own board it still runs in high speed mode. Is there a driver I’m missing or a setting in the kernel that needs to be changed? Any help would be greatly appreciated!

lsusb -v output for USBO1:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            3.10
  iManufacturer           3 Linux 3.10.40-2.7.3+gf328e55 ehci_hcd
  iProduct                2 Tegra EHCI Host Controller
  iSerial                 1 tegra-ehci.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    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
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             1
  wHubCharacteristic 0x0009
    Per-port power switching
    Per-port overcurrent protection
    TT think time 8 FS bits
  bPwrOn2PwrGood       10 * 2 milli seconds
  bHubContrCurrent      0 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered

lsusb -v output for USBH4:

Bus 003 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            3.10
  iManufacturer           3 Linux 3.10.40-2.7.3+gf328e55 tegra-xhci
  iProduct                2 Nvidia xHCI Host Controller
  iSerial                 1 tegra-xhci
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           31
    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.02a0 5Gbps power Rx.Detect
   Port 2: 0000.0280 5Gbps power SS.disabled
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength           15
  bNumDeviceCaps          1
  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           2 micro seconds
    bU2DevExitLat          64 micro seconds
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0003
  Self Powered
  Remote Wakeup Enabled

Please have a look at the answer in this thread:
https://www.toradex.com/community/questions/15574/ixora-carrier-board-usb-30.html

Thanks a ton! I thought I had looked around but I must have missed it. Thanks again for the help.