Clarification....

Ed Brinker ebrinker at gne.net
Wed Feb 10 09:33:06 CET 1999


Sorry, I don't have my Mark IV flame thrower with me.

I agree with your point in that there are two extremes of approaches to the
problem and one's personal preference probably depends on the problems one
would like to solve with the BIOS and perhaps some confusion between the
functions of a boot loader and a BIOS.  Both are necessary.   The question
I am posing is just how much of the BIOS should be made loadable.

As I said, my background is both hardware and software.

My hardware hat has (is) grumbled about the limitations that a BIOS imposes
on the operation of a PC.  For example, when running in a pure DOS mode, I
don't need the capabilities of a 1600x1200 3D graphics card.  What I need
is just the capability of a VT220 type serial terminal.  I have had
situations where the only spare vidio card was a super vga card with bad
memory and I wanted to run DOS.  Rather than booting into DOS with a serial
terminal, I had to swap vidio cards with another PC.

Not every PC is used as an office business terminal or juniors game
station.  Most PC's are used as POS terminals or simple controllers.  You
just don't see these advertised in the PC mags.  These system almost always
run an embedded DOS and don't need the capabilities required in many of the
current BIOS's.  In fact, they might be cheaper and more reliable without
them.  And any universal, configurable BIOS should reflect those end users
also.

While this may seem an extreme example to some, I was looking at an
elevator control system several days ago which was 386 PC based.  The
manufacturer had installed a vidio card and terminal because the PC
wouldn't boot with them.

As another example, I was looking at a server "Black Magic" built by
Dresselhaus Computers (www.dresselhaus.com). The server was based around a
standard 4 slot ISA motherboard.  The only function of the server was to
act as a LAN router.  To keep the cost low, the manufacturer had modified
the BIOS so as not to use any vidio terminal or hard drive.  The server
sdimply booted up and began executing what was pointed to by the boot
record on the floppy drive.  Ther server had no hard drives, no vidio
capability, a 10 base t ethernet card and an internal modem card.  It was,
IMHO a simple way to use a PC. 

I only use these examples to point out that a configurable BIOS/Boot Loader
must be exactly that, configurable. And I only know of three ways of making
a configurable BIOS.

The first is a very modularized ROM based BIOS with a number of conditional
executions.

The second is to provide a source code rich in conditional macros or
include statements which would be compiled/assembled by the
manufacturer/hacker and burnt into the (E)(EE)PROM.

The third would be to make a loadable, segmented BIOS.
  
Each approach has it's pros and cons.  The first is universal but at the
expense of ROM space.
It requires the least amount of customer interaction.

The second most closely fits the curent BIOS distribution model but
requires that a knowledgable person make the final configuration after
which the BIOS becomes unchangable.

The third is the most flexible but will require the most knowledge in the
place least likely to find it, the end  user.

A fourth approach would be to make some parts (or all) of the BIOS loadable
or reloadable.
That is, to provide a "boot" BIOS embedded containing some subset of
functions necessary and sufficient to boot the OS in ROM and another
superset of functions that would or could reconfigure the system to take
advantage of the unique hardware configurations.  For example, I have a 486
computer with a caching HD controller (a TEKRAM 2277).  That particular
controller is a hell of a lot faster and more efficient than the embedded
controller on my K6-2 SOYO motherboard on the PC I am now using.  I would
like to optimize or change the Microid Research BIOS on the 486 mother
board to only use the 2277 supplied drivers but under the ROM only BIOS, I
can't.
 
My hardware hat prefers the third approach.  My practical side knows that
the second approach 
is most like to be widely received by the PC community. Maybe I can hope
for the fourth.


At 11:52 PM 2/9/99 +0100, you wrote:
>I see two clear fractions here. One that, like me, wishes to create a
>full, complete BIOS with all the functions that goes with it (keyboard,
>video, storage etc). And one that supports the minimalistic approach with
>just a bootloader in the Flash ROM. How should we deal with this? Should
>we make two seperate versions of OpenBIOS? Or should we join our efforts
>in making one, very flexible and configurable BIOS? Any other ideas?
>
>I think that, when considering the bootloader approach, you miss two vital
>parts of the BIOS, the I and the O. To be classified as a BIOS (in
>particular, OpenBIOS), in my opinion it should atleast support some form
>of input and output system. Otherwise you are left with BS (perhaps
>Booting System?). There is nothing wrong with this, and I can clearly see
>some merits of that, but as I said, I don't classify that as a BIOS.
>Perhaps there should be a subproject of OpenBIOS called OpenBS?
>
>(Flameshield suit - ON ;)
>
>/ Niklas Ekström
>
>
>On Mon, 8 Feb 1999, Ed Brinker wrote:
><snip>
>> With all of that history, I like the model
>> 
>> ---------------------------------------------------------
>> Media: EEPROM        BootDevice    BootDevice    Any Device
>> Code:  BootLoader -> BIOS   ->     OSloader  ->  OS
>> 
>> The EEPROM has four necessary functions that I can identify:
>> Self test of the motherboard. 
>> The chipset dependent functions.  These are really unique to the
motherboard.
>> For speed and efficency, copy the os independant portion of the kernel to
>> shadow ram.
>> Loading layer 1 of the boot. 
>>
><snip>
>



More information about the openbios mailing list