2.2 Plug and Play ISA Card Support

One responsibility of a Plug and Play BIOS during POST is to isolate and initialize all Plug and Play ISA cards and assign them with a valid Card Select Number (CSN). Once a CSN is assigned, the system BIOS can then designate resources to the Plug and Play ISA cards according to the resource allocation scheme chosen for the system. While the configuration of the required Plug and Play ISA boot devices by the Plug and Play BIOS is mandatory, all of the remaining Plug and Play devices may be configured dynamically by the system software at boot. The system BIOS mayalso provide a mechanism for system software to explicitly allocate system resources to the Plug and Play ISA cards in the system. For example, the system BIOS could provide support for allocating the last working configuration.

2.2.1 Assigning CSN to Plug and Play ISA cards

Early in the POST process, a Plug and Play system BIOS should always perform the isolation process for Plug and Play ISA cards as specified in the Plug and Play ISA specification V1.00. This process should be performed regardless if CSNs have already been assigned to the Plug and Play Devices. This will guarantee accurate initialization of each Plug and Play device during the start of the operating system.

The Plug and Play ISA specification requires that CSNs must be assigned sequentially starting at one and continuing in the order that each Plug and Play ISA card is isolated.

A responsibility of the system BIOS is to maintain the last assigned CSN. This information will be returned through function 40h, Get ISA Configuration Structure, of the Plug and Play runtime services. Programs that want to scan through the CSNs looking for their adapter will need to know the last CSN assigned.

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.