[U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices

Simon Glass sjg at chromium.org
Sat Dec 19 21:30:16 CET 2015


+Marek, Stephen

Hi Josh,

On 18 December 2015 at 06:26, Josh Sanford <joshs6502 at gmail.com> wrote:
> All,
>
> I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) board,
> and I am able to enumerate high-speed devices, but not full-speed or
> low-speed devices.  I know that the devices are functional, because they
> work on the same physical hardware when I boot into Linux.  Note that I'm
> using "U-Boot 2014.10-RK3288-02".
>
> As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a
> USB_PORT_STAT_C_CONNECTION for me, even though USB_PORT_STAT_CONNECTION goes
> high immediately after powering on, so I forcibly assert
> USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to enumerate.
>
> High-speed devices can be nested as deeply as I wish and still show up
> properly, but I can't get low-speed devices (i.e. a keyboard) to work in any
> hub port, including any of the ports directly on the board.  All attempts to
> read from my low-speed devices return all zeros.  When I dig a little
> deeper, I find myself in int dwc_wait_for_complete(struct usb_device *dev,
> uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}.
>
> On the second iteration through the goto loop, hcintn.b.chhltd and
> hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, and
> hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat =
> HCSTAT_REINIT and returns.
>
> I do notice that dwc_hcd.c seems not to have any code to support split
> transactions (or perhaps I simply haven't seen it yet).  If true, I wonder
> whether this code is actually expected to support full-speed and low-speed
> devices.  Do you have any thoughts on the matter?  I wish I were more of a
> USB expert, but I'm regrettably quite a novice.

I believe the split transaction issue is currently being resolved for
DWC. See for example Stefan Bruns' series from 13th December. It might
be worth trying that out.

Regards,
Simon


More information about the U-Boot mailing list