[U-Boot] Regression due to 020bbcb "usb: hub: Power-cycle on root-hub ports"
Stephen Warren
swarren at wwwdotorg.org
Mon Jul 1 18:41:53 CEST 2013
On 07/01/2013 07:49 AM, Vivek Gautam wrote:
> Hi Marek,
>
>
> On Sun, Jun 30, 2013 at 10:08 PM, Marek Vasut <marex at denx.de> wrote:
>> Dear Stephen Warren,
>>
>>> (Sorry to those on to/cc; I'm resending this so it goes to the correct
>>> mailing list)
>
> Dear Stephen,
> sorry for the delay in responding to this.
>
>>>
>>> Commit 020bbcb "usb: hub: Power-cycle on root-hub ports" causes a
>>> regression on Tegra systems.
>>>
>>> The first time "usb start" is executed, it appears to work correctly.
>>> However, any subsequent time it is executed, it takes a long time, and
>>> eventually fails to find any USB devices.
>>>
>>> This situation can happen quite often; for example, if the user forgets
>>> to plug in a USB device before booting, runs "usb start", realizes that,
>>> then plugs it in and runs "usb start" again. This is compounded on at
>>> least one of the Tegra boards, since CONFIG_PREBOOT is set to "usb
>>> start" on systems (laptops/clamshells) which have built-in USB keyboards.
>>>
>>> If I simply revert this patch, then everything works again. (Yes,
>>> reverting requires fixing a small merge conflict.)
>>>
>>> Do you have any idea what the problem can be? I'm tempted to simply ask
>>> for the patch to be reverted since it causes a regression.
>>>
>>> Thanks for any idea how to fix this!
>>
>> BUMP? Vivek, any ideas? Otherwise I'm reverting this.
...
> There's one BUG that i could see in " 0bf796f " commit.
> Now that we parallelized the sequence to power cycle ports, so if
> get_port_status for any port failed,
> it returns from hub_power_on() and not power-on any of the port.
>
> Below is the change i suggest.
...
> can you please confirm if you problem is related to this BUG in the
> sequence of power-cycling the ports.
I applied that change, and it does not solve the problem on Tegra, nor
do I see any of the messages that were changed from debug to printf.
Below is the log:
U-Boot 2013.04-00281-g0e8ef51 (Jul 01 2013 - 10:33:36)
TEGRA20
Board: NVIDIA Seaboard
DRAM: 1 GiB
NAND: 512 MiB
MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
In: tegra-kbc
Out: lcd
Err: lcd
Net: Net Initialization Skipped
No ethernet found.
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 2 USB Device(s) found
USB2: lowlevel init failed
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices...
Warning: asx0 using MAC address from net device
1 Ethernet Device(s) found
Hit any key to stop autoboot: 0
Tegra20 (SeaBoard) # usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
(there's a much longer pause when scanning this bus every time except
the very first)
USB2: lowlevel init failed
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 0 Ethernet Device(s) found
Tegra20 (SeaBoard) # usb start
(Re)start USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
USB2: lowlevel init failed
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 0 Ethernet Device(s) found
More information about the U-Boot
mailing list