Plug and Play BIOS Specification

Plug and Play BIOS Specification 1.0A Page 12
On systems with a dynamic ISA bus, like portables, function 40h will be more flexible. When an ISA bus
is present, the information returned by function 40h will always be valid after a cold boot. On a cold boot
with no ISA bus present, function 40h will return zeros. After an ISA warm/hot dock, the function 40h
information will also be valid, if the plug and play BIOS isolates and enumerates the plug and play
adapter cards before returning control to the plug and play operating system. If the BIOS does not re-
enumerate after an ISA warm/hot dock event, then the information returned by function 40h will be zeros.
After an ISA undock event, this information will also be zeros.
2.2.2 Initializing Plug and Play ISA Cards
After CSNs have been assigned, all Plug and Play ISA devices should be inactive. Later in POST when
the system resources have been determined, Plug and Play ISA cards will be enabled as determined by the
system's allocation scheme. This means that at least all of the Plug and Play ISA bootable cards will be
configured and enabled.
During the POST sequence, the system BIOS will need to select an Input, Output, and Initial Program
Load (IPL) device. Based on the other devices in the system, any Plug and Play device that is a boot device
will get enabled to provide the boot services. Plug and Play devices that are not boot devices may get
enabled later in POST if, and only if they can be enabled without creating a resource conflict.
The method used to allocate resources to the Plug and Play ISA cards depends on the resource allocation
method described in the section above. If Static Resource Allocation is being used then the Plug and Play
ISA devices will be initialized according to the information specified for the last working configuration.
If Dynamic Resource Allocation is being used then resource information available from the Plug and Play
ISA card will be used to configure the device during the BIOS POST process.
2.3 BIOS POST Option ROM Initialization
One of the new features of the Plug and Play BIOS architecture is the enhancements to the ISA Option
ROM architecture. This new interface will help couple the system BIOS closely with the Plug and Play
option ROM to assist the system BIOS in completing the POST configuration process. For details about
the Plug and Play option ROM enhancements, refer to the section on the Plug and Play Option ROM.
This section describes how the system BIOS will initialize both standard ISA and Plug and Play Option
ROMs.
All ISA option ROMs that are not Plug and Play compatible will be initialized by the Plug and Play BIOS
POST using the exact procedure used in existing PC compatible systems. This procedure is performed by
scanning the C0000h to EFFFFh address space on 2K boundaries searching for a 55AAh header. Once
located, the module is checksummed to determine if the structure is valid and, if valid, the option ROM is
initialized by making a far call to offset 03h within the segment.
There are two different environments that Plug and Play compliant option ROMs could be installed in.
The first is a standard PC compatible system that does not have a Plug and Play compatible system BIOS.
The second environment is a system that has a Plug and Play system BIOS. The option ROM can
determine which environment it is installed in by examining the register information passed to the option
ROM's initialization routine. It is able to perform this check because the Plug and Play BIOS will provide
the following information:
Entry: ES:DI Pointer to System BIOS Plug and Play Installation Check Structure (See Section 4.4)
The following registers will only be initialized for Plug and Play ISA devices:
BX Card Select Number for this card, FFFFh if this device is not ISA Plug and Play.
DX Read Data Port address, FFFFh if there are no ISA Plug and Play devices in the system.
For other bus architectures, refer to the appropriate specification. For example, the PCI Local Bus
Specification R2.0 published by the PCI SIG specifies AH=Bus number and AL=Device Function number
as parameters for Option ROM initialization.
On a system that does not have a Plug and Play compatible system BIOS, ES:DI would not point to a valid
Plug and Play Installation Check Structure . Therefore, by validating the contents of the data pointed to in
ES:DI, the option ROM can determine whether it is being initialized from a Plug and Play or non-Plug