[U-Boot] mpc5121 - EHCI problems with some (but not all) USB hubs

Michael Trimarchi trimarchi at gandalf.sssup.it
Thu Sep 24 18:04:18 CEST 2009


Damien Dusha wrote:
> Dear All,
>
> I am attempting to integrate the USB on the Freescale mpc5121
> processor on the mpc5121ads board from Silicon Turnkey for upgrades of
> kernel, u-boot etc.
>
> I have succeeded in integrating Francesco Rendine 's EHCI patch for
> the MPC5121 (see
> http://lists.denx.de/pipermail/u-boot/2009-June/055021.html ) and I
> have the general functionality of upgrading from a USB stick working
> straight from the USB, or through some (but not all) USB hubs.
>
> However, I am having problem using the driver with some (but not all)
> USB hubs.   I have some USB hubs that work "out of the box", but I
> have other hubs that cause booting u-boot to hang after attempting to
> initialise the USB.  The ones that do work, and the ones that fail all
> fail in the same place the great majority of the time (they succeed
> very occasionally).
>
> I have traced the hang to the following lines in drivers/usb/host/ehci-hcd.c:
>
> 	/* Wait for TDs to be processed. */
> 	ts = get_timer(0);
> 	vtd = td;
> 	do {
> 		/* Invalidate dcache */
> 		ehci_invalidate_dcache(&qh_list);
> 		token = hc32_to_cpu(vtd->qt_token);
> 		if (!(token & 0x80))
> 			break;
>
>                /* This was my own line I added to check.  The
> get_timer(ts) always returns 0 and never exits the loop */
>                debug("get_timer: %d, CONFIG_SYS_HZ: %d\n",
> get_timer(ts), CONFIG_SYS_HZ);
> 	} while (get_timer(ts) < CONFIG_SYS_HZ);
>   
I think that the git_timer is not proprer implemented here and so
what happen if you go out the busy loop and return an error to the
message?
Can you try on another hardware with u-boot?
> One of the hubs that fails is part of a 4-port USB-Serial converter
> (it's a hub to 4 FTDI chips) and is described as:
> Manufacturer ALCOR
> Product      Generic USB Hub
>
> Another of the (mostly) failing hubs is a generic "i-rocks" brand:
> Manufacturer
> Product      USB2.0 Hub
>
> It happens even when the hubs are self-powered, or connected through a
> hub that is itself powered externally (we've had power problems from
> the mpc5121ads board's USB in the past).
>
> The hubs (and USB-Serial adaptors) are perfectly recognised under
> Linux, if USB is not started in U-Boot and we proceed to a normal
> Linux boot sequence.
>
> Is anyone able to suggest what might be going wrong, or some further
> testing that may help reveal the problem?
>   

> Best regards
> Damien Dusha.
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>   



More information about the U-Boot mailing list