[coreboot] legacy bios support and coreboot

Kevin O'Connor kevin at koconnor.net
Fri May 9 00:43:48 CEST 2008


On Wed, May 07, 2008 at 10:50:11AM +0800, aaron lwe wrote:
> I've written a loader for coreboot-v2 to load legacybios, it works
> well when used with qemu, I've booted freebsd with it. But on real
> hardware, via epia-cn, it hangs with a blank screen, the debug port
> value is 0x31, I'll take some time to see what's going wrong.
> 
> I add a header for legacybios to become a payload, this is done by a
> utility createpayload.

Hi Aaron,

It looks like your payload launcher transitions to 16bit mode to enter
the bios.  Although this works, it's not needed.

If you look at the file legacybios/out/rom32.offset.auto.h you'll see
a definition for OFFSET__start.  This is the 32bit entry point.
(Jumping to 0xf000:0xfff0 in 16bit mode just causes legacybios to
transition to 32bit mode and then jump to the above.)

So, something like:

    typedef void (*entry_t)();
    entry_t myentry = (entry_t)OFFSET__start;
    myentry();

Should be all that is needed.

-Kevin




More information about the coreboot mailing list