USB keyboard with XHCI on x86?

Simon Glass sjg at chromium.org
Mon May 11 01:30:15 CEST 2020


Hi,

On Thu, 7 May 2020 at 21:02, Bin Meng <bmeng.cn at gmail.com> wrote:
>
> Hi Simon,
>
> On Fri, May 8, 2020 at 10:38 AM Simon Glass <sjg at chromium.org> wrote:
> >
> > Hi Bin,
> >
> > Does this work for you? It doesn't work for me in interrupt mode, only
> > in control-endpoint mode. Is that expected?
> >
> > Also I notice that some broken devices don't work or cause a crash.
> >
>
> I don't have a board to test xHCI right now, but from the commit
> message I wrote the interrupt mode should be working.
>
> commit 1897d60130976ece389d5875187b78ba0d41428f
> Author: Bin Meng <bmeng.cn at gmail.com>
> Date:   Mon Sep 18 06:40:41 2017 -0700
>
>     usb: xhci: Add interrupt transfer support
>
>     xHCI uses normal TRBs for both bulk and interrupt. This adds the
>     missing interrupt transfer support to xHCI so that devices like
>     USB keyboard that uses interrupt transfer can work.
>
>     Signed-off-by: Bin Meng <bmeng.cn at gmail.com>

Yes it does work, but it seems a bit fragile. E.g. if I unplug the
keyboard I get:

=> WARN halted endpoint, queueing URB anyway.
Unexpected XHCI event TRB, skipping... (78832cd0 00000000 13000000 01008400)
BUG at /scratch/sglass/cosarm/src/third_party/u-boot/files/drivers/usb/host/xhci-ring.c:496/abort_td()!
BUG!
resetting ...


Marek, I don't have EHCI so far as I know. This is Intel Apollo Lake.

Regards,
Simon


More information about the U-Boot mailing list