A bios has to provide enough support to load a program. Now where are you going to load the program from. A floppy, nope that's stupid. From harddisk, why, what great note from heaven said all computers come with a hard disk.
It is my view the network is the only sensible place to load it from.
So a bios has to load a OS ( application), and has to have network code so it can load from the logical location.
In a perfect world the bios should hide from the OS the hardware. New hardware should be able to add CPU independent drivers.
For a well thought out and complete answer to this question take look at IEEE 1275. Unfortunately like all complex questions the complete answer is not simple to follow.
Now for the last statement, nobody is doing embedded control.
Yes I am, and I will ask the question, for embedded control why do you want to boot an OS. You can fit a lot of code ( including the OS) in a $10 flash.
Regards
Charles Esson
Mircea Ciocan wrote:
Dave wrote:
This is a philosophical question that I am posing here for discussion.
What should the purpose of the BIOS be?
In my mind, the BIOS should be a minimal piece of code, used only to initialize the hardware to the extent needed to boot the system. This would include initializing the memory space and boot device, reading the first block of code from the boot device and turning control over to that block of code. This "boot block" would then finish initializing the hardware, loading API's, OS's or whatever, from the boot device.
Well if we drop the the legacy of supporting DOS and windoze and tweak
a little the free OSes not to depend by "classic" BIOS calls ( I belive that Linux still use at boot some BIOS calls for memory size discovery, some APM sevices and so...) and add a little configuration program that will be nice as a start. But somewhat it MUST be a metod for add-on cards to announce their capabilitys more than what we have now on the PCI bus. BTW somebody studied the IEEE proposal ???
I believe that all API level services should be provided by the boot block code that is loaded by the BIOS and not by the BIOS itself.
You mean by the kernell ;) ???
The BIOS as boot loader would also be well suited for embedded applications because it is small, lightweight and can be specifically implemented to boot from things such as flash, EPROM, network cards, radio modems or other unusual boot devices.
In most embedded devices THE boot media is the ROM so, the
configuration is also enough fixed to not necesite a configuration program and btw. is there some ( even scratch...) standard for what a embbeded BIOS should do, tommorow I'll start coding to some micro-PC board with ALI 6117C and I'll like a starting point.
P.S. Still nobody answered me, really nobody doing embedded on this list :(((
Mircea C.