Plug and Play BIOS Specification
Plug and Play BIOS Specification 1.0A Page 11
There are certain benefits that can be realized by supporting Static Resource Allocation. First, the
configuration of every device in the system is saved in nonvolatile storage which allows the BIOS to
allocate the appropriate resources to the devices in the system during POST. This allows the last working
configuration to be maintained from boot to boot. Another benefit comes from the ability to explicitly
assign, or lock, the resources allocated to any Plug and Play card in the system. Static resource allocation
will require nonvolatile storage on the system for storing the resource allocation for each device in the
system.
Example: The EISA architecture is an example of an architecture which uses static resource allocation.
The EISA configuration utility is responsible for determining device resource allocations, then storing that
information for the BIOS. Upon initialization, the system BIOS accesses the stored device configurations
and subsequently programs each device accordingly. The system BIOS does not perform any conflict
detection or resolution.
Dynamic Resource Allocation
The method for dynamic resource allocation is for the system BIOS POST to dynamically allocate
resources to configurable devices using a procedure considered most desirable or effective to the system
BIOS. This method usually needs to know what resources are being used by static (old ISA) devices in the
system to work successfully. The system resources allocated to the static devices are registered with the
system BIOS through function 09h, Set Statically Allocated Resource Information, of the runtime
services.
The primary benefits of dynamic resource allocation are the minimal amount of nonvolatile storage
required and the flexibility in resource allocation provided to the Plug and Play devices installed in the
system. As mentioned above, the system BIOS needs to know the system resources being used by the
static devices for effective dynamic resource allocation. The system software must provide this
information through the Set Statically Allocated Resource Information function.
Example: An example of a system which supports dynamic resource allocation is one where the system
BIOS only stores information regarding static ISA devices (assuming that this information is supplied by
a configuration utility). Using this stored information, a system BIOS could use semi-intelligent
algorithms to configure the Plug and Play devices "around" the static ISA devices. Such a configuration is
dynamic because it is determined each time the system boots.
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.