[U-Boot] [PATCH 1/1] USB: EHCI: Initialize multiple USB controllers at once

Jim Lin jilin at nvidia.com
Fri Jul 27 04:47:48 CEST 2012


Wolfgang,
Is there any chance to get this feature in after Stephen explained to you?

Thanks.

>-----Original Message-----
>From: Stephen Warren [mailto:swarren at wwwdotorg.org] 
>Sent: Thursday, June 28, 2012 12:58 AM
>To: Wolfgang Denk
>Cc: Jim Lin; 'U-Boot at lists.denx.de'; Tom Warren
>Subject: Re: [U-Boot] [PATCH 1/1] USB: EHCI: Initialize multiple USB controllers at once
>
>On 06/27/2012 12:55 AM, Wolfgang Denk wrote:
>> Dear Jim Lin,
>> 
>> sending the very same message eight (8!) times doesnot make it a bit
>> more convincing - on contrary.
>> 
>> In message <4B9C9637D5087840A465BDCB251780E9E2D6EDA3F5 at HKMAIL02.nvidia.com> you wrote:
>>>
>>>> U-Boot is not multi-tasking, so you can always access only a single
>>>> USB device at a time ayway.  And it is a decoumented design principle
>>>> that U-Boot must not initialize any devices it does not use itself.
>>>>
>>>> So why?
>>> Because of this complaint and request for devices under different controllers
>>> to be working at same time.
>> 
>> You make another claim here, but don't explain how this is supposed to
>> work or whay the exact use case would be where this was needed.
>> U-Boot will not be able to access multiple devices at the same time,
>> so why would it be necessary to enable these?  It should be sufficient
>> to enable the controller that is responsible for the single device
>> that is currently being used.
>> 
>>> "One particularly annoying consequence of this is when you use the Seaboard
>>> configuration on Springbank.
>>> Seaboard selects Tegra's USB3 as "usb 0" device, which is the one you can use,
>>> in order not to conflict with the flashing USB port USB1.
>>> However, Springbank only exposes USB1 since USB3 is used internally for the
>>> USB keyboard/mouse. As such, you cannot use the USB port on Springbank under
>>> U-Boot at the moment.
>>> "
>> 
>> I have to admit that I cannot make any sense from this statement.  The
>> only thing I understand is that you are trying to use a configuration
>> for one hardware (Seaboard) on another, incompatible hardware
>> (Springbank).
>> 
>> The simple answer to this problem is: don't do that, then.
>
>Seaboard and Springbank are essentially the same board, and hence are
>almost 100% SW compatible, so there's no problem running a Seaboard
>build of U-Boot/kernel/... on Springbank.
>
>The primary issue here is that many boards have multiple USB ports.
>Users could plug e.g. a USB->Ethernet device into any of the ports.
>Requiring the user to know which port is which ID so they can issue the
>correct "usb start <n>" command is painful; no other SW stack limits
>itself to a single port and so most people don't have a clue which ports
>are numbered what; they just want USB to work.
>
>The specific issue on Springbank is that there are multiple USB ports
>that are useful at the essentially the same time. One of the USB ports
>hosts a built-in USB keyboard (inside a sealed clamshell/netbook case),
>which we would like to use for the U-boot console. Another USB port is
>external, and people will plug in a USB->Ethernet dongle or USB storage
>device there. so, if I need to "usb start 0" to get the keyboard, and
>"usb start 1" to get USB Ethernet, then as soon as I "usb start 1" to
>get the Ethernet, I've just lost the console, and am unable to interact
>with U-Boot any more...

--
nvpublic


More information about the U-Boot mailing list