IDEA: Linux kernel and pcbios compatibility...
Eric W. Biederman
ebiederman at lnxi.com
Fri Dec 19 00:17:00 CET 2003
Joshua Wise <joshua at joshuawise.com> writes:
> On Thursday 18 December 2003 7:36 pm, Eric W. Biederman wrote:
> > Brainstorming earlier today I think I have found a way to use
> > an linux kernel for the boot loader and to implement pcbios
> > compatibility without too much cost. The idea is to use
> > a uclinux kernel. And implement a ``user space'' aplication
> > that is a user space shim that makes kernel calls.
>
> The way I implement my bootloader on ARM is like this:
>
> 1) First stage assembly loader sets up serial and DRAM.
> 2) First stage loader probes RAM, and sets up tagged list.
Roughly what LinuxBIOS does.
> 3) First stage jumps into zImage of special LAB (Linux As Bootldr) kernel.
> (currently just a 2.6.0 kernel from handhelds.org that has CONFIG_LAB
> defined.)
> 4) LAB kernel boots up until it gets ready to jump into init.
> 5) #ifdef'ed code takes over and calls a LAB main function which does all
> sorts of cool stuff including giving the user a CLI if requested (usually by
> holding the iPAQ's joypad down), or autobooting (running a predefined
> mkdir/mount/armboot sequence.)
>
> Conceivably you could write a subapp for the CLI that does what you want, and
> put it in the autoboot script.
Somehow I could write a subapp that would make linux look like a normal
pcbios, but I can be surprised.
> LAB for ARM's zImage is currently ~509kbytes for those who care. (We must keep
> it below 512KB.)
Ouch! My x86 images are below that, at least before decompression.
> > There are a few nasty details to work out like how to handle
> > services that are expected to work in vm86 mode. But I'm
> > not certain I care.
> I've tinkered with writing an OS, but I still don't know too much about the
> x86 architecture, so I couldn't help there. Sorry.
>
> > Other thoughts?
> Check out my LAB code, see what you think. It's in handhelds.org anoncvs,
> module linux/kernel26. Relevant crap is in bootldr/, drivers/bootldr/, and
> arch/arm/boot/.
I probably will. Doing that stuff inside the kernel does not really feel
proper to me. I already have an x86 kernel that can load another kernel
from user space. I'm just trying to find a good long term architecture
for using the kernel as a bootloader.
> > After I come back from my christmas vacation I am going to have to try
> > it and see how will it will actually work.
> Take care, have a nice vacation.
Thanks.
Eric
More information about the coreboot
mailing list