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.1 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 and Play system BIOS. Some Plug and Play system BIOSs do not pass ES:DI as a valid pointer to the Plug and Play Installation Check Structure. In this case, the $PnP option ROM can determine if the BIOS supports the $PnP header structure by following the procedure outlined in Section 4.4. In any case, the OPROM decision to do a legacy initialization, or a Plug and Play initialization, should be made \revauth1 \revdttm-2048248936 solely on the contents of ES:DI being valid or not. Once the option ROM has determined the environment it is installed in, it can perform the proper steps for initialization.

In the first environment, which is a standard PC compatible system that does not have a Plug and Play compatible system BIOS, the ISA option ROM scan will be performed and the Plug and Play option ROM should initialize exactly as if it was a standard ISA option ROM.

In the second environment, where the system has a Plug and Play system BIOS, the option ROM will recognize the Plug and Play installation check structure and perform the initialization as specified in section 3, which describes the option ROM support. Option ROM initialization routines can not depend on any of the Plug and Play runtime functions to be available until after INT19 has been invoked at the end of the POST process.