[RFC PATCH v3 0/6] Improve USB Keyboard support for rpi3/rpi4

Jason Wessel jason.wessel at windriver.com
Wed Jul 1 05:02:33 CEST 2020

At this point all the USB keyboards I had laying around now work
and I can USB boot the rpi3 and rpi4, so perhaps this series can
move beyond the RFC stage.  More testing will occur over the next
week or so. 

  - Add in patch 6
  - Finally got the GearHead keyboard + mouse composite USB device working

  - Minor cleanups to patches 1-3 based on prior review
  - Patch 4 & 5 are new to fix various xhchi crashes
    while having additional devices plugged in along with
    booting off the usb port.  The nonblocking mode turned
    out to be somewhat complex.


For testing this patch series, I did apply the USB patches for the
rpi4 board which had not been merged yet.  Once the rpi4 USB changes
are eventually merged the keyboard delay issues will show up and I
imagine this issue is already a problem for other boards. This series
does not depend on rpi4 patches as the changes are in the core USB

I performed tests with a number of usb modules attached including 
storage, ethernet, serial, wifi, keyboard, and
mouse without any issues.

Jason Wessel (6):
      xhci: Add polling support for USB keyboards
      usb_kbd: Do not fail the keyboard if it does not have an interrupt pending
      common/usb.c: Work around keyboard reporting "USB device not accepting new address"
      xhci-ring.c: Add the poll_pend state to properly abort transactions
      xhci-ring: Fix crash when issuing "usb reset"
      usb.c: Add a retry in the usb_prepare_device()

 common/usb.c                 |  18 +++++++++---
 common/usb_kbd.c             |   4 ++-
 drivers/usb/host/xhci-ring.c | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
 drivers/usb/host/xhci.c      |  11 ++++----
 include/usb/xhci.h           |   5 ++--
 5 files changed, 122 insertions(+), 39 deletions(-)

More information about the U-Boot mailing list