[coreboot] using SeaBios on EFI platforms
kevin at koconnor.net
Sat Feb 14 02:17:40 CET 2009
On Fri, Feb 13, 2009 at 02:25:08PM -0500, Scott D. Davilla wrote:
> SeaBios seems to have matured nicely and I figure it's about time to try
> again my attempts at resolving boot restrictions on the AppleTV.
> For review, I'm the atv-bootloader author which is used for booting
> Linux under the AppleTV. This is a second stage bootloader which poses as
> a mach_kernel which was loaded by EFI firmware.
> Currently, to enable loading a generic Linux kernel I'm already moving
> RSDP and SMBIOS table to where Linux can find them as well as converting
> the EFI memory map to an e820 memory map. This works very well and the
> next step is to get VBIOS POST'ed and working. With VBIOS working, this
> removes the last problem area that being able to use generic video
> console drivers. Once this is done, then the Linux kernels booted can be
> truly generic and also adds the possibility of booting Windows.
> From what I can gleam from the code, it seems that I should be able to
> load up SeaBios, setup the proper structures that it expects and go. Then
> bang, instant bios which will not only handle vbios but also a real bios.
> Any comments or pointers to things to watch out for would be appreciated.
As a thought, I wonder if we could extend SeaBIOS to make the EFI
calls directly. The SeaBIOS post phase runs in 32bit mode (with
standard gcc). Currently, the code in src/coreboot.c extracts info
from the coreboot table to build the e820 map and copy rsdp. Maybe a
src/efi.c could do something similar for EFI machines.
Just a thought - let us know what you find.
More information about the coreboot