jordan.crouse at amd.com
Fri Jun 15 01:28:26 CEST 2007
On 15/06/07 01:02 +0200, Stefan Reinauer wrote:
> * Jordan Crouse <jordan.crouse at amd.com> [070615 00:36]:
> > I disagree. Letting payloads rely on LinuxBIOS to set up devices is the
> > start of a slippery slope that we should try like mad to avoid.
> We do know there are devices that won't work if LinuxBIOS does not do
> the job. RAM, PCI resources, SCSI, VGA, ...
> There are plenty of cases where the payload relies on LinuxBIOS setting
> up the hardware.
> This is the whole point of LinuxBIOS: setting up the hardware.
I guess it sort of depends on your definition of "hardware". :)
We do the steps to enable the system to run, and to enumerate certain
parts of the hardware so that the payload can see them, but we don't often
make policy decisions for devices hanging off the end of the busses.
We don't set up IDE drives. We don't configure sound cards, or initialize
NICs, or any of those things. The point is, that LinuxBIOS shouldn't
really be required to leave individual devices in any sort of sane state.
> > There is nothing about LinuxBIOS today that guarantees that any output
> > method is available (even serial). If we encourage payloads to use
> > structures like these and make assumptions about the state of the
> > hardware, then when a developer chooses to omit initializing the serial
> > port or other output method, his e-mail will quickly catch on fire,
> > thereby implicitly forcing everybody to support serial and video and
> > heaven knows what else.
> Why would LinuxBIOS not initialize serial console, but a payload would?
> If LinuxBIOS does not initialize it, it's not there.
Again, words get in the way. LinuxBIOS does initalize and enumerate it,
but I don't really think that the intent is to require LinuxBIOS
to tromp out and touch the 16550 and set baud rates, and other such
configuration settings so that the payload doesn't have to. Am I wrong?
> > It is not LinuxBIOS's responsibility to make life easier for the payloads.
> Ok, so what would you say is LinuxBIOS' job then?
I think LinuxBIOS is there to initalize and enumerate the hardware at
a very low level. I don't think it is there to be a surrogate serial /
smbus / IDE / VGA / whatever driver for payloads that don't wish to
implement those things on their own. Of course, I say that because I'm
pretty much only interested in loading payloads that do support those
services on their own - but I personally think one of LinuxBIOS's
greatest assets is that it does only what it needs to, and puts the
responsibility on me to do the rest. The power and flexibility of that
single trait is worth it.
Senior Linux Engineer
Advanced Micro Devices, Inc.
More information about the coreboot