[U-Boot] [PATCH 00/16] usb: hub: Support USB 3.0 hubs

Bin Meng bmeng.cn at gmail.com
Fri Jun 23 09:54:16 UTC 2017


This series is a follow-up series to previous series [1] that adds
support for USB 3.0 hubs.

USB 3.0 hubs have slightly different hub descriptor format, as well
as different port status bit positions. These needs to be properly
handled by U-Boot USB core stack codes. xHCI driver has also been
updated to correctly set up context structures that are required
for devices behind a 3.0 hub to work.

Besides USB 3.0 hubs support, this series also adds support for low
speed/full speed devices connected behind a high speed hub with the
xHC controller. It turns out the 'Transaction Translator' part in
the xHC data structure is missing.

Note there is one error during testing USB keyboard when
CONFIG_USB_KEYBOARD is on.

  "Failed to get keyboard state from device 413c:2105"

The enumeration process did pass and the error was thrown in the
USB keyboard driver. This was due to the interrupt transfer is
still not supported by xHCI driver, as of today.

This series is available at u-boot-x86/xhci-working2 for testing.

[1] https://lists.denx.de/pipermail/u-boot/2017-June/296166.html


Bin Meng (16):
  usb: xhci-pci: Drop non-DM version of xhci-pci driver
  usb: xhci-pci: Clean up the driver a little bit
  usb: Remove unnecessary work in usb_setup_descriptor()
  usb: hub: Use 'struct usb_hub_device' as hub device's uclass_priv
  usb: hub: Add a new API to test if a hub device is root hub
  usb: xhci: Change to use usb_hub_is_root_hub() API
  usb: hub: Translate USB 3.0 hub port status into old version
  usb: hub: Support 'set hub depth' request for USB 3.0 hubs
  usb: xhci: Change xhci_setup_addressable_virt_dev() signature
  usb: xhci: Program 'route string' in the input slot context
  usb: hub: Parse and save TT details from device descriptor
  dm: usb: Add a new USB controller operation 'update_hub_device'
  usb: hub: Call usb_update_hub_device() after hub descriptor is fetched
  usb: xhci: Implement update_hub_device() operation
  usb: xhci: Correct TT_SLOT and TT_PORT macros
  usb: xhci: Enable TT to support LS/FS devices behind a HS hub

 common/usb.c                  |  40 +++++-----
 common/usb_hub.c              | 166 +++++++++++++++++++++++++++++++++++++++++-
 drivers/usb/host/usb-uclass.c |  13 +++-
 drivers/usb/host/xhci-mem.c   |  40 +++++++++-
 drivers/usb/host/xhci-pci.c   |  68 +----------------
 drivers/usb/host/xhci.c       |  85 +++++++++++++++------
 drivers/usb/host/xhci.h       |   8 +-
 include/usb.h                 |  46 +++++++++++-
 include/usb_defs.h            |  15 ++++
 9 files changed, 357 insertions(+), 124 deletions(-)

-- 
2.9.2



More information about the U-Boot mailing list