On 28/12/13 02:41, Philip Rhoades wrote:
People,
I have been on this list for some time lurking - just because I think it is interesting that a bit of firmware can allow hardware to be actually useful! I haven't done more than read the occasional post that was of interest but the thought occurred to me again about replacing the BIOS that is on my current machine with something that is open so I went back to the OpenBIOS home page but was a bit puzzled to see on the Download page: "Do not try to put OpenBIOS in a real boot ROM, it will not work and may damage your hardware!". After a little more looking around I am still confused - the ultimate aim of this software is to eventually allow people to replace their proprietary BIOSes right? I have an Intel MB DG45ID but I couldn't Google much overlap with OpenBIOS . .
Thanks for any enlightenment!
Regards,
Phil.
Hi Phil,
Basically there are two parts to the problem here: one is the low-level hardware initialisation, while the second is adding the required support for boot.
For low-level hardware initialisation, you'd need to use coreboot and add OpenBIOS as an ELF payload - I did try this a few years back and managed to get a Forth prompt working under QEMU. But there are some things that OpenBIOS doesn't know, for example how much physical RAM is in the machine which at the moment is obtained through a QEMU-specific interface.
I suspect this is why the warning exists, as accessing these QEMU-specific addresses will have undefined behaviour on real hardware. So unless you can talk to coreboot then you'd need to hardcode some specific defaults (which I believe is probably the approach used by http://temlib.org to enable OpenBIOS to work on their SPARC board).
Finally if you are using Intel hardware then you'll find that the support is a lot weaker than other architectures (for example x86 OpenBIOS is currently real mode only, no PE support). My guess is that this is because for more modern hardware, people are focusing their efforts on developing open UEFI firmwares instead.
ATB,
Mark.