Plug and Play BIOS

Traditionally, installing and configuring devices in PCs has been a difficult process. During installation, the user is faced with the task of configuring the new card by selecting the IRQ, I/O ports, and DMA channel. In the past, users were required to move jumpers or set switches on the add-in cards to control these settings.

They needed to know exactly which resources were already in use so they could find a set of resources that did not conflict with the devices already in the system. If a conflict existed, the system might not boot and the device might fail or cause the conflicting hardware to fail.

PnP is technology designed to prevent configuration problems and provide users with the capability to easily expand a PC. With PnP, the user simply plugs in the new card and the system configures it automatically for proper operation.

PnP is composed of three principal components:

  • Plug and Play BIOS

  • Extended System Configuration Data (ESCD)

  • Plug and Play operating system

The PnP BIOS initiates the configuration of the PnP cards during the bootup process. If the cards previously were installed, the BIOS reads the information from ESCD, initializes the cards, and boots the system.

During the installation of new PnP cards, the BIOS consults the ESCD to determine which system resources are available and needed for the add-in card. If the BIOS is capable of finding sufficient available resources, it configures the card.

However, if the BIOS is incapable of locating sufficient available resources, the Plug and Play routines in the operating system complete the configuration process. During the configuration process, the configuration registers (in flash BIOS) on the card and the ESCD are updated with the new configuration data.

PnP Device IDs

All Plug and Play devices must contain a Plug and Play device ID to enable the operating system to uniquely recognize the device so it can load the appropriate driver software. Each device manufacturer is responsible for assigning the Plug and Play ID for each product and storing it in the hardware.

Each manufacturer of Plug and Play devices must be assigned an industry-unique, three-character vendor ID. Then, the device manufacturer is responsible for assigning a unique product ID to each individual product model. After an ID is assigned to a product model, it must not be assigned to any other product model manufactured by the same company (that is, one that uses the same vendor ID).

ACPI

ACPI stands for Advanced Configuration and Power Interface, which defines a standard method for integrating power management as well as system configuration features throughout a PC, including the hardware, operating system, and application software.

ACPI goes far beyond the previous standard, called Advanced Power Management (APM), which consists mainly of processor, hard disk, and display control. ACPI controls not only power, but also all the Plug and Play hardware configuration throughout the system.

With ACPI, system configuration (Plug and Play) as well as power management configuration is no longer controlled via the BIOS Setup; it is controlled entirely within the operating system instead.

ACPI enables the system to automatically turn peripherals on and off (such as CD-ROMs, network cards, hard disk drives, and printers), as well as external devices connected to the PC (such as VCRs, televisions, telephones, and stereos). ACPI technology also enables peripherals to turn on or activate the PC.

For example, inserting a tape into a VCR can turn on the PC, which could then activate a large-screen television and high-fidelity sound system.

ACPI enables system designers to implement a range of power management features with various hardware designs while using the same operating system driver.

ACPI also uses the Plug and Play BIOS data structures and takes control over the Plug and Play interface, providing an operating-system-independent interface for configuration and control. ACPI is supported in Windows 98/Me, Windows 2000, XP, and later versions.

During the system setup and boot process, Windows versions supporting ACPI perform a series of checks and tests to see whether the system hardware and BIOS supports ACPI. If support for ACPI is either not detected or found to be faulty, the system typically reverts to standard Advanced Power Management control, but problems can also cause a lockup with either a red or blue screen with an ACPI error code.

Red screens indicate that the problem is probably related to hardware or the BIOS. Blue screens, on the other hand, indicate that the problem is probably related to software or is an obscure problem. The ACPI error codes are described here:

  • 1xxx - Indicates an error during the initialization phase of the ACPI driver and usually means the driver can't read one or more of the ACPI tables

  • 2xxx - Indicates an ACPI machine language (AML) interpreter error

  • 3xxx - Indicates an error within the ACPI driver event handler

  • 4xxx - Indicates thermal management errors 5xxx - Indicates device power management errors

Virtually all these errors are the result of partial or incomplete ACPI implementations or incompatibilities in either the BIOS or device drivers. If you encounter any of these errors, contact your motherboard manufacturer for an updated BIOS or the device manufacturers for updated drivers.

Initializing a PnP Device

One responsibility of a Plug and Play BIOS during POST is to isolate and initialize all Plug and Play cards and assign them a valid Card Select Number (CSN). After a CSN is assigned, the system BIOS can then designate resources to the cards.

The BIOS is responsible only for the configuration of boot devices; all the remaining Plug and Play devices can be configured dynamically by the operating system software. The following steps outline a typical flow of a Plug and Play BIOS during the POST:

  1. Disable all configurable devices.

  2. Identify all Plug and Play devices.

  3. Construct a resource map of resources that are statically allocated to devices in the system.

  4. Enable input and output devices.

  5. Perform ISA ROM scan.

  6. Configure the boot device.

  7. Enable Plug and Play ISA and other configurable devices.

  8. Start the bootstrap loader.

If the loaded operating system is Plug and Play compliant, it takes over management of the system resources. Any unconfigured Plug and Play devices are configured by the appropriate system software or the Plug and Play operating system.

At this point, the operating system is loaded and takes control over Plug and Play system resources. Using the Device Manager in the operating system (such as Windows), the user can now control any Plug and Play devices.