
Hi Josh,
On 21 December 2015 at 07:11, Josh Sanford joshs6502@gmail.com wrote:
Thanks Simon. I'm having difficulty finding anything by Stefan Bruns around that time frame, or much of anything recent pertaining to DWC. (I only checked the u-boot-denx.git and u-boot-rockchip.git branches.) Am I looking in the wrong place?
This is just patches at present - see here:
http://patchwork.ozlabs.org/project/uboot/list/?submitter=67055&state=*
Regards, Simon
On Sat, Dec 19, 2015 at 3:30 PM, Simon Glass sjg@chromium.org wrote:
+Marek, Stephen
Hi Josh,
On 18 December 2015 at 06:26, Josh Sanford joshs6502@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