[U-Boot] Multiple device support - none at all?
ksi at koi8.net
ksi at koi8.net
Tue Mar 10 22:30:42 CET 2009
On Tue, 10 Mar 2009, Jerry Van Baren wrote:
> ksi at koi8.net wrote:
> > Hi, everyone.
> >
> > I wonder if I'm dreaming or the U-Boot is fundamentally broken...
>
> Well... broken can be a relative term. I like to think of it as an
> opportunity to stand on the shoulders of giants. ;-)
:)
> > It looks like there is no support for multiple devices of a same kind at
> > all.
> >
> > I'm porting U-Boot to my new MPC8548-based board and it pops up
> > everywhere...
> >
> > The first case was I2C subsystem that does not provide for several I2C
> > adapters except rudimentary hacks for fsl_i2c.
> >
> > Now it is USB. I have 2 OHCI USB controllers on the board, OHCI module in
> > NXP ISP1563 and OHCI controller in Silicon Motion SM502 MFD. The former is
> > supported in drivers/usb/usb_ohci.c, the latter is kinda trivial to add,
> > BUT...
> >
> > It looks like nobody even considered the case when a board can have several
> > controllers... Looking at usb_lowlevel_init() I can see it only works for
> > the first device found, there is absolutely no provision for several
> > devices. And things are getting even nastier if there are devices of the
> > same type with different interfaces (e.g. on-SoC USB controller and a PCI
> > one.)
> >
> > And this seems to be the case for each and every device type. Am I missing
> > something or U-Boot is actually flawed in FUNDAMENTAL way and it is time to
> > start a new one from scratch?
>
> U-Boot started life as a boot loader. You know, simple. It has gotten more
> complex over time, but the modus operandi of u-boot is and shall remain that.
> Simple. (quoting our benevolent dictator, WD)
>
> The counter-question for your application is to challenge what you are trying
> to use u-boot for: do you actually need to use both USB controllers
> (simultaneously or even sequentially) to boot linux? Do you really need to
> use multiple I2C controllers to boot linux? Can you simplify your system to
> get linux running without supporting multiple USB or I2C adapters?
Yes, I _DO_ need both controllers. There are numerous scenarios for that --
e.g. I can have a keyboard on a slow controller and a storage device or
network adapter on another one. I can have multiple storage devices and want
to choose which to boot from and so on.
> If you really need multiple adapter support, you are going to have to blaze
> new ground (or build out some hacks into more acceptable levels of support).
> That is the cost of being the leader. :-/
Thanks, I already tried this for I2C... Now it is a hack (separate driver
and core) in my $(BOARD) directory. USB is next, then I have additional
serial ports...
> The fundamental concept of u-boot isn't to handle all your devices, it is to
> boot linux (or other OS) and use the OS to handle the multiple devices.
The same is true for a PC BIOS, but it DOES handle all of my devices. And it
allows me to choose which device to boot from. And it is extendable so I can
add a PCI card with e.g. RAID controller and boot off of that RAID. And it
is not handling of all devices, it is _BASIC_ functionality...
I don't mind reconfiguring and rebuilding the thing for my parcticular
configuration instead of just changing some settings in interactive setup
utility, but the current implementation won't allow even that...
---
******************************************************************
* KSI at home KOI8 Net < > The impossible we do immediately. *
* Las Vegas NV, USA < > Miracles require 24-hour notice. *
******************************************************************
More information about the U-Boot
mailing list