Subject: Re: putting functionality in firmware vs OS
To: David Seifert <seifert@sequent.com>
From: Parag Patel <parag@cgt.com>
List: tech-kern
Date: 07/29/1998 15:13:06
>But why is the PCI spec the place for this decision?
It's got to be some-place and by requiring the firmware set things up, it really does make it quite a bit simpler for various OSes that use PCI devices.
A big reason for the firmware to set things up is so that it can detect a console and select a boot device.
At CodeGen, we license a C implementation of the OpenFirmware standard we call SmartFirmware. Our customers have PCI (and other) buses with no legacy ISA stuff nor any x86 processors.
We need to be able to boot images (COFF, ELF, gzipped, Forth/Fcode, raw boot-loader, whatever) from SCSI disks, CD-ROMs, floppies, flash ROMs, ethernet - indeed anything bootable from any bootable device.
So the firmware has to initialize everything, including PCI, just to find the device to boot from.
Similarly, it has to find keyboard and screen devices or serial devices to use as the console. If there's a USB keyboard, the firmware will first have to initialize the PCI-USB chip, then probe and initialize the USB bus, then select a keyboard.
Fun, eh?
-- Parag