[U-Boot] USB Host not enumerating properly on AM335x-based board

Marek Vasut marex at denx.de
Sun Dec 14 20:18:26 CET 2014


On Thursday, December 11, 2014 at 04:44:33 PM, Maxime Ripard wrote:
> Hi,
> 
> On Thu, Dec 11, 2014 at 02:09:30PM +0100, Marek Vasut wrote:
> > On Wednesday, December 10, 2014 at 04:23:49 PM, Maxime Ripard wrote:
> > > Hi,
> > > 
> > > On Thu, Nov 20, 2014 at 05:49:17PM +0100, Maxime Ripard wrote:
> > > > Hi,
> > > > 
> > > > I'm currently working on 2014.07, on a custom TI AM335x based board.
> > > > 
> > > > Everything works great so far, except when we're trying to have USB
> > > > host working.
> > > > 
> > > > The board has the MUSB1 controller wired as USB Host only, with the
> > > > following configuration:
> > > > 
> > > > #define CONFIG_USB_MUSB_DSPS
> > > > #define CONFIG_ARCH_MISC_INIT
> > > > #define CONFIG_MUSB_PIO_ONLY
> > > > #define CONFIG_MUSB_DISABLE_BULK_COMBINE_SPLIT
> > > > #define CONFIG_MUSB_HOST
> > > > #define CONFIG_MUSB_DSPS
> > > > #define CONFIG_AM335X_USB1
> > > > #define CONFIG_AM335X_USB1_MODE MUSB_HOST
> > > > 
> > > > #ifdef CONFIG_MUSB_HOST
> > > > #define CONFIG_CMD_USB
> > > > #define CONFIG_USB_STORAGE
> > > > #define CONFIG_USB_HOST_ETHER
> > > > #define CONFIG_USB_ETHER_ASIX
> > > > #endif
> > > > 
> > > > Whenever we try to scan the USB controller and that a device is
> > > > attached, we get the following output:
> > > > 
> > > > U-Boot# usb start
> > > > (Re)start USB...
> > > > USB0:   scanning bus 0 for devices... 1 USB Device(s) found
> > > > 
> > > >        scanning usb for storage devices... 0 Storage Device(s) found
> > > >        scanning usb for ethernet devices... 0 Ethernet Device(s)
> > > >        found
> > > 
> > > Just an update on this one.
> > > 
> > > Our configuration was missing CONFIG_USB_GADGET_DUALSPEED that, even
> > > though its name suggest otherwise, seems to be needed to enable USB2.0
> > > devices support in the musb-new driver.
> > > 
> > > With this additional configuration option, everything works as
> > > expected.
> > 
> > Wow, this is excellent news, good job finding this!
> > 
> > On the other hand, this behavior is very braindead and should be fixed
> > before someone else gets burnt.
> 
> I agree :)
> 
> > Do you have any ideas for a patch please ?
> 
> It's really used by two drivers: musb-new and gadget/ether.c
> 
> The ethernet driver seems to be doing the right thing: this option
> controls wether the gadget should use high or full speed.
> 
> musb-new on the other hand seems to be using it to set up the actual
> controller speed, disregarding wether it's running in host or device
> mode.
> 
> So I guess we could split these two apart, and introduce an option
> called CONFIG_MUSB_DUALSPEED?

I'd rather see CONFIG_MUSB_FORCE_SPEED or somesuch.

> The tricky thing will be to convert the configurations using this
> option, since you can't really know with a grep / sed what they are
> using it for: ethernet, musb, both?

I hope Heiko can chime in, I believe it's only the siemens board which
needs to force the musb into full-speed operation ; the other boards
should be fine with dualspeed.



More information about the U-Boot mailing list