[U-Boot] [PATCH 1/2] usb: ci_udc: allow multiple buffer allocs per ep

Stephen Warren swarren at wwwdotorg.org
Tue Jun 10 21:34:23 CEST 2014


On 06/02/2014 05:02 PM, Jörg Krause wrote:
> Sorry, my previous post was not shown correctly. The raw text was missing. I
> removed the annotation.
> 
> Since this commit my Ethernet Gadget on a custom Freescale i.MX28 board is
> broken. Using tftp to download files I get in almost all cases a timeout:

Sorry for the slow response; for some reason I didn't get a copy of the
message so I didn't notice it.

Could you tell me which include/config/xxx.h file you're using? I guess
if it's a custom board, perhaps that file isn't upstream. If so, I'm
particularly interested in whether you have CONFIG_USB_GADGET or
CONFIG_USB_ETHER enabled.

I wonder if applying the following series rather than reverting this
commits solves the issue?

[U-Boot,1/4] usb: ci_udc: detect queued requests on ep0
http://patchwork.ozlabs.org/patch/353926/

[U-Boot,2/4] usb: ci_udc: use a single descriptor for ep0
http://patchwork.ozlabs.org/patch/353932/

[U-Boot,3/4] usb: ci_udc: pre-allocate ep0 req
http://patchwork.ozlabs.org/patch/353931/

[U-Boot,4/4] usb: ci_udc: complete ep0 direction handling
http://patchwork.ozlabs.org/patch/353941/

The only other thing I can think of is that there's some issue with the
bounce buffer alignment or size being wrong somehow. Perhaps try
increasing those?

Or, perhaps req->actual ends up being wrong, so ci_debounce() isn't
cache-invalidating or copying enough data? Perhaps try rounding up
req->len instead of req->actual when performing the cache invalidate?

> This is one case:
> 
> Updating rootfs ...
> using ci_udc, OUT ep- IN ep- STATUS ep-
> MAC 00:19:b8:00:00:02
> HOST MAC 00:19:b8:00:00:01
> high speed config #1: 2 mA, Ethernet Gadget, using CDC Ethernet
> USB network up!
> Using usb_ether device
> TFTP from server 10.0.0.1; our IP address is 10.0.0.2
> Filename 'rootfs.ubifs'.
> Load address: 0x40008000
> Loading: ###########timeout sending packets to usb ethernet

I'm slightly confused by this log. Do you have 2 boards running U-Boot,
one running the USB controller in device mode, and this is the log from
some other board that's talking to that first board?


More information about the U-Boot mailing list