SeaBIOS

From coreboot
Revision as of 15:12, 21 January 2009 by Hailfinger (talk | contribs) (Use cases)
Jump to: navigation, search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

SeaBIOS (previously known as LegacyBIOS) is an open-source legacy BIOS implementation, which can also be used as coreboot payload.

Use cases

Any software requiring 16-bit BIOS services benefits from SeaBIOS.

Windows XP

Windows XP has been booted on real hardware with coreboot and SeaBIOS. Some patches are required.

Windows Vista

Windows Vista (64/32 bit) has been booted on real hardware with coreboot and SeaBIOS. Some patches are required.

Windows 7 Beta

Windows 7 Beta (?? bit) has been booted on real hardware with coreboot and SeaBIOS. Some patches are required.

GRUB

GRUB works with coreboot and SeaBIOS on real hardware and boots Linux just fine.

Building

SeaBIOS

You can download the latest version of SeaBIOS through a git repository:

$ git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios
$ cd seabios

Alternatively, the released versions of SeaBIOS can be found at http://linuxtogo.org/~kevin/SeaBIOS/. There's also a gitweb facility to browse the latest source code online.

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 AVOIDCOMBINE=1 is not necessary with recent gcc versions, just use make)

The final SeaBIOS 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 SeaBIOS as payload:

$ cd ..
$ svn co svn://coreboot.org/repository/coreboot-v3
$ cp seabios/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 SeaBIOS payload.

Running SeaBIOS in QEMU

For running coreboot+SeaBIOS 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 SeaBIOS in QEMU:

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

Ready-made SeaBIOS 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.