Re: BIOS vs Kernel

From: Richard B. Johnson
Date: Mon Apr 26 2004 - 11:01:03 EST


On Mon, 26 Apr 2004, [iso-8859-1] Lucas Silva wrote:

> Before I start working on this I would like to find
> out
> if it is possible or at least useful.
>
> Is it feasible?
> To create a BIOS that would help the kernel (working
> together).
>
> What if the BIOS booted the PC in protected mode ,
> enabling the A20 (taking away all that backwards
> support, so on),
> And then implement a realible interface.
>
> Wouldn't that be faster?
> Would the kernel be able to communicate to it?
>
> Thanks Profetas

The reason why the BIOS boots in 'real' mode is because there
are 'real' mode drivers provided by vendors that are added during
the POST routine. For instance a SCSI boot disk, or a LAN card
used to boot. If I were not for this, you could just boot in
protected-mode.

However, the BIOS does much, much, more than boot the machine!
Modern motherboards are very dumb as soon as the power is
applied. They are literly built by the BIOS. The final construction
(like how pins of electronic blobs are connected and the internal
guts of gate-arrays) is all done by the BIOS. It's not just a
matter of turning on chips like the old IBM manuals show.

So you need the BIOS to build the board. It starts the boot-sequence
in 'real' mode so that's what you have. FYI, the BIOS code has
already transitioned to and from 32-bit linear address space,
probably several times, during the POST routine. It's really
quite trivial. Whether or not the boot-code gets to 32-bit mode
right away or later on in the boot sequence is simply dependent
upon being able to complete the loading of the operating system
from the IPL device.


Cheers,
Dick Johnson
Penguin : Linux version 2.4.26 on an i686 machine (5557.45 BogoMips).
Note 96.31% of all statistics are fiction.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/