Hi,
I recently found out about this project OpenBIOS.
I was also thinking of making a better BIOS for quite some time. But haven't started yet to code anything or look for documentation.
But I did think about how such a state of the art BIOS should work.
Here are my ideas (any comments are welcome):
- Everything which is on the motherboard and needs to set up at boat-time has to be done by the bios.
- the bios also has 'drivers' for on board chips (like serial, parallel, perhaps sound and video if they are on the motherboard).
- bios on the motherboard should not have drivers for extension-cards (like SCSI, video, sound, network, ...) So don't put every possible driver in the bios because it would grow to big on the long term.
- bios should detect such extension cards and load the bioses on those cards (as long as it's not possible to alter bios's on extension cards the OS-kernel should load drivers for it).
- bios also needs an OS-Loader so you can choose at boot time which OS you want to boot.
- there should be a good API which makes it possible fo an OS to use the bios 'drivers' (whatever system or OS you have) instead of having drivers for every possible extension card. (Which means a generic SCSI-API, generic NIC-API, generic Sound-API, generic Video-API, ...) If this API is well-designed it should be possible to write kernels without one line of assembler code in it (so it would be easy to port to another architecture with a bios with the same API).
This is basically what's in my mind. Please do comment about it.
Wim