1.1 development release targets.
Eric W. Biederman
ebiederman at lnxi.com
Tue Apr 15 13:25:01 CEST 2003
Steve Gehlbach <steve at nexpath.com> writes:
> Eric W. Biederman wrote:
> > - Use the elf bootloader
> What about the alternative floppy/ide routines?
Given that there are several types of rom chips we will
need to continue to support several types of loaders, not just
loading from a classic x86 rom chip. I think the floppy/ide
routines may be a bit of unnecessary but there is no real impact
on the rest of the code base.
Note: All of these drivers are currently in etherboot and you can
compile them into the same etherboot binary.
> There are a lot of people using
> this, although I think it could be made better by using the bzImage and jumping
> to startup_32 etc.
Not at all. Jumping straight to startup_32 is a very bad idea.
First because most times LinuxBIOS is ported people don't
have enough time, the code base needs to be optimized for to make
simple fast ports. To achieve this everything that can be reused
and is motherboard independent needs to be split off into it's own
separate binary. And drawing a line at elfboot and saying no further
features beyond this point keeps the code bloat down.
Second startup_32 is not an officially supported kernel entry point
and so it is subject to change whenever someone sees a better way
of making it work. This means for example the code in the tree does
not work with the redhat 9 kernel for example. A little bit of
wrapper code in mkelfImage that we can change when the kernel changes
and not cause people to need to reflash their BIOS is a good thing.
Third people have a lot of ideas on how the user interface to a BIOS
should look: Openfirmware, EFI, PCBIOS, etherboot, redboot, the
baremetal toolkit, etc. And it just does not make sense to support
all of these as build options of LinuxBIOS. It works a lot better to
have the LinuxBIOS table with information describing the hardware,
and a simple general purpose bootloader that can load any of them.
And then the Interface just needs to be built.
Right now with etherboot we have one very good option that the ELF
loader can load. And with ADLO, we have a second option on the way.
The bare metal toolkit has demonstrated how you can take cute little
features like directly loading the Linux kernel still support them,
but have the code loaded with the ELF bootloader.
In the 1.0.x release we won't remove code but for the development
release I don't see how supporting anything except the ELF bootloader
makes sense. The concept has proved itself sound. And it allows us
to seriously talk about things like support for the BSDs.
More information about the coreboot