SeaBIOS

From coreboot
Revision as of 23:12, 18 May 2008 by Uwe (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

LegacyBIOS is an open-source legacy BIOS implementation, which can also be used as coreboot payload.

Building

LegacyBIOS

$ mkdir foo
$ cd foo
$ git clone git://git.linuxtogo.org/home/kevin/legacybios.git legacybios
$ cd legacybios

Edit src/config.h and set the following values:

#define CONFIG_COREBOOT 1
#define CONFIG_DEBUG_SERIAL 1
#define CONFIG_PCIBIOS 0

Then:

$ make AVOIDCOMBINE=1

The final LegacyBIOS payload file is out/bios.bin.elf, which can be used with coreboot v2 or v3.

coreboot

Finally, you have to build coreboot (v3 in this example) with LegacyBIOS as payload:

$ cd ..
$ svn co svn://coreboot.org/repository/coreboot-v3
$ cp legacybios/out/bios.bin.elf coreboot-v3/payload.elf
$ cd coreboot-v3
$ make menuconfig

Now enter the Payload menu and select Payload type and then An ELF executable payload file. Now exit the menu, save your settings, and build coreboot:

$ make

The file build/coreboot.rom (or build/bios.bin) is your final coreboot v3 image, which also contains the LegacyBIOS payload.

Running LegacyBIOS in QEMU

For running coreboot+LegacyBIOS in QEMU, you need a patched version of vgabios-cirrus.bin in your build directory first:

$ cd build
$ wget http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip
$ unzip Vgabios-cirrus.zip
$ cd ..

You can now run LegacyBIOS in QEMU:

$ qemu -L build -hda /dev/zero -serial stdio

Ready-made LegacyBIOS QEMU image

TODO

Public domain I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.

In case this is not legally possible:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.