OpenBIOS

From coreboot
Jump to navigation Jump to 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!

OpenBIOS is an IEEE 1275-1994 compliant firmware which can also be used as a coreboot payload.

Building

OpenBIOS

First you need to manually install fcode-utils. Your distribution may provide a ready-made package for fcode-utils -- on Debian systems you can do apt-get install fcode-utils for instance. Then you can build OpenBIOS as follows:

$ svn co svn://openbios.org/openbios/trunk/openbios-devel
$ cd openbios-devel
$ config/scripts/switch-arch x86
$ make

The file obj-x86/openbios-builtin.elf is your final OpenBIOS payload to be used with coreboot. Alternatively, you can use obj-x86/openbios-plain.elf, which does not contain a built-in dictionary and is thus a lot smaller (but not too useful).

coreboot

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

$ cd ..
$ svn co svn://coreboot.org/repository/coreboot-v3
$ cp openbios-devel/obj-x86/openbios-builtin.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 payload.

Running OpenBIOS in QEMU

For running the coreboot+OpenBIOS image 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 it in QEMU:

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

Ready-made QEMU image

Please follow these instructions if you want to try out coreboot and OpenBIOS in QEMU.

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.