After 4 years of hard work, the OpenBIOS team are proud to announce the release of OpenBIOS 1.1. Since the last release, over 600 commits have been made to the SVN repository with a wealth of improvements and new features. As a result of these changes, the ability of OpenBIOS 1.1 to boot various kernels under QEMU has significantly improved.
Multi-architecture features ===========================
- Internal memory API (OFMEM) implementation
All main architectures in OpenBIOS have been migrated to a new shared OFMEM API rather than maintaining their own individual implementations. This API handles both internal and external memory allocations, and automatically handles generation of the relevant memory and virtual-memory node properties required for clients.
- Forth Source Debugger
A basic Forth source debugger is included that can be used to step through Forth words which are marked using the debug word. Once the source debugger has been entered, it is possible to step up, step down, drop to a Forth interpreter shell or continue execution whilst viewing the current stack contents.
- 64-bit 1275 6d5 implementation
OpenBIOS now contains the additional 64-bit word set required by some bootloaders.
- Forth Local Variables
In order to support bootloaders such as Apple's BootX, OpenBIOS now contains an implementation of Forth local variables.
- Internal libopenbios code reorganisation
Over time, a lot of the code related to loading executable files had been forked for each individual architecture, e.g. ELF loader. The codebase has been substantially refactored so that the individual forks have been combined in a centralised libopenbios meaning that a substantial portion of duplicate code has been removed from each architecture.
SPARC32 compatibility =====================
OpenBIOS SPARC32 is currently able to boot the following OS/kernels:
* Linux * NetBSD * OpenBSD * Some later versions of Solaris (Solaris 8 and early Solaris 9 are known to work)
SPARC64 compatibility =====================
OpenBIOS SPARC64 is currently able to boot the following OS/kernels:
* Linux (with virtio drivers)
Many thanks to Artyom Tarasenko for making this possible.
PPC compatibility =================
OpenBIOS PPC is currently able to boot the following OS/kernels:
* Linux * HelenOS
The following kernels will partially boot, but still suffer from some emulation bugs under QEMU:
* FreeBSD * NetBSD * Darwin/OS X
Many thanks to William Hahne and his mentor, Natalia Portillo, for contributing the patches required to support Darwin/OS X kernel boot in OpenBIOS as part of the Google Summer Of Code.
PPC64 compatibility ===================
OpenBIOS PPC64 is currently experimental but should be capable of executing some bootloaders. Please report details of any testing to the OpenBIOS/QEMU mailing lists.
Credits =======
Many thanks to everyone who has contributed to OpenBIOS by providing bug reports, patches or testing. In particular the team would like to thank (in alphabetical order):
John Arbuckle Segher Boessenkool Mark Cave-Ayland Olivier Danet Andreas Färber Alexander Graf William Hahne Igor Kovalenko Tarl Neustaedter Natalia Portillo Stefan Reinauer Amadeusz Sławiński Blue Swirl Artyom Tarasenko Andreas Tober Laurent Vivier
Please visit http://www.openfirmware.info/ for more information on OpenBIOS.