BIOS updates still matter

bscott at ntisys.com bscott at ntisys.com
Wed Sep 1 00:28:00 EDT 2004


On Tue, 31 Aug 2004, at 9:03am, mkomarinski at wayga.org wrote:
> But now it seems that the hardware is getting its own firmware and that
> needs updating.

  Indeed.

  Some (rather esoteric) explanation, for those interested:

  The IBM-PC BIOS (Basic Input/Output System), strictly speaking, is the
part of the system that translates various well-known software interrupt
calls into hardware-specific functions.  For example, INT13 (software
interrupt 0x13)  provides low-level disk read/write functions.  The idea was
that hardware would provide a BIOS interface, and software would be written
to use the BIOS, giving the platform a measure of hardware abstraction.

  Unfortunately, the original BIOS design was junk to begin with, and poor
implementation quality generally made things even worse.  It was and is very
common for software to go "around" the BIOS, in order to get the features,
performance, and/or control needed.  That was the case when the BIOS was
brand new, and now it's twenty years old and hasn't aged well.

  In particular, almost all BIOS calls have to be made in real mode (16-bit
segmented memory).  That makes the BIOS useless to the Linux kernel, which
runs in protected mode (32-bit flat vitalized memory).  This is why you
need drivers for everything in Linux, while you can limp along sometimes
under 'doze and DOS.  Windows 95 and 98 can still fall back on the BIOS for
some things if they have to.  So, people say, correctly, that "Linux doesn't
use the BIOS".

  Now, on the original IBM-PC, most of the main ROM was dedicated to the
implementation of BIOS services [1].  There was practically nothing in ROM
that wasn't BIOS, so in the IBM-PC world, "BIOS" and "firmware" became
somewhat synonymous.

  However, as Mark Komarinski notes, these days, there is plenty that
happens in "firmware" that is not, technically speaking, part of the "BIOS".  
Hardware initialization and setup code was tiny in the IBM-PC ROM, but is
huge today.  PCI enumeration.  PCI interrupt routing.  ACPI.  ISA PnP.  
Microprocessor configuration.  Perhaps even FPGA or ASIC programming.  All
of that is done by the firmware.  Linux needs it to be done properly.  So if
the firmware is buggy, Linux may break.


Footnotes
---------
[1] Also a BASIC interpreter, which I will ignore for this discussion.

-- 
Ben Scott <bscott at ntisys.com>
| The opinions expressed in this message are those of the author and do  |
| not represent the views or policy of any other person or organization. |
| All information is provided without warranty of any kind.              |







More information about the gnhlug-discuss mailing list