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.
32bit mode is right where I'm running. In going over the SeaBIOS
code, it looks like I just need to prep a coreboot table, stick it in
the correct place and call post.
Or I could mod the coreboot.c code and create an efi.c to just grab
it from the original locations.
Calling EFI proper is not possible, there's really not much to call
as I'm way past the EFI release point. But I do have the devicetree
and other interesting bits.
This will be fun, of course, no serial port which makes it real
interesting to debug.
I would also be interested in USB keyboard support. FILO has
ohic/uhic in 32bit mode but not 16bit.
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot