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

Jim Lin jilin at nvidia.com
Tue Jul 3 01:29:46 CEST 2012


> -----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..

Wolfgang,
Any further thought about Stephen's request?
Thanks.

nvpublic


More information about the U-Boot mailing list