[coreboot] using SeaBios on EFI platforms

Kevin O'Connor 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.

Sounds interesting.

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.

-Kevin




More information about the coreboot mailing list