Boot Loader

Eric R. Kern eric_kern at ibm.net
Wed Feb 10 17:46:46 CET 1999


>   >   >Is the intention to have much of the BIOS code
>   >   >on the hard drive with only the
>   >   >minimal amount of code on the EEPROM?
>   >
>   > That is what I was thinking. I think this approach makes it much
easier to
>   > modify, update and experiment with the BIOS.
> What if you don't have a hard drive? I don't like this approach.

Another approach that could be used is to have a boot block sector of
code.  For those of you who have not programmed BIOS before I'll
explain...

Most PCs shipping today come with boot block code in the EEPROM.  A
jumper (or switch) on the board is used to toggle between a boot block
boot and a normal boot.  Often this jumper is connected to a GPIO.
Initial BIOS code reads the value of this GPIO and runs the appropriate
code.  The boot block code brings up the bare minimum amount of hardware
in order to read a BIOS image off the floppy drive (memory and floppy).
Once this image has been read into memory, the computer reruns the BIOS
code using the image in memory to load the F000 and E000 segments (where
BIOS code usually is run from) rather then the EEPROM.  This is quite
useful for testing BIOS code without modifying the code on the EEPROM.

A normal boot, however, would use the code from the EEPROM.  By
containing all of our BIOS code in the EEPROM, we allow an end user the
use a system that does not have a hard drive (Net PC ring a bell?).
Remember that we can compress most of the code on the EEPROM (with only
the decompression algorithm and memory bring up code not compressed).
This provides for plenty of code space, especially when you consider
that modern EEPROMs shipping with systems are typically 512K bytes.

Eric R. Kern



More information about the openbios mailing list