Plug and Play BIOS Specification

Plug and Play BIOS Specification 1.0A Page 7
1.3 Elements of the Plug and Play BIOS architecture
1.3.1 Bi-modal functionality
All Plug and Play BIOS Services which are accessible at runtime support a bi-modal interface. The two
modes supported are 16-bit Real Mode and 16-bit Protected Mode. These two modes are sufficient to
support a wide variety of operating environments. Real Mode interfaces are defined in terms of the
segment and offset of the service entry point.
Protected Mode interfaces specify the code segment base address so that the caller can construct the
descriptor from the segment base address before calling the interface from protected mode. The offset
value is the offset of the entry point. It is assumed that the 16-Bit Protected Mode interface is sufficient
for 32-Bit Protected Mode callers. However, it is important to note that Plug and Play BIOS functions
will access arguments on the stack as a 16-bit stack frame. Therefore, the caller must ensure that the
function arguments are pushed onto the stack as 16-bit values and not 32-bit values. For function
arguments that are pointers, the pointer offset and data should be contained within the first 64K bytes of
the segment. Refer to section 4.4 Plug and Play Installation Check for a complete description of the bi-
modal interface.
1.3.2 OS Independence
The Plug and Play BIOS services, which are accessible during normal system operation, are defined in a
manner independent from the operating system. The BIOS System Device Nodes are a compact form of
a device node tailored specifically to the configuration of systemboard devices.
A Plug and Play OS which complies with the general framework of the Plug and Play Architecture
requires a software isolation/translation layer between the System BIOS and the OS.
The isolation/translation software performs the task of translating the generic BIOS interfaces defined in
this specification into those required to support configuration management in the desired operating
environment.
1.3.3 Expandability
Throughout the Plug and Play BIOS Specification care was taken to provide a mechanism for extensibility
of this specification. All significant structures and interfaces are defined with revision identifiers. These
revision identifiers provide a mechanism whereby the interfaces defined may be extended so long as the
interfaces remain backward compatible to the original specification.
1.4 Installation Structure
Section 4.4 of this specification defines the Plug and Play installation check procedure and structure. This
mechanism defines a structure which may be located on any 16-byte boundary within the System BIOS
address space of 0F0000h - 0FFFFFh. Software which must determine if it is operating on a platform
supporting a Plug and Play BIOS, should scan the specified address space searching for the ASCII string
"$PnP" on 16-byte boundaries. If the software identifies such a string on a 16-byte boundary, it must
validate that it has indeed found a Plug and Play Installation Check Structure by verifying the structure's
checksum and validate either the version field or the length field or both. A valid checksum indicates that
the system BIOS provides all of the required functions of the Plug and Play System BIOS specification.
Specifying this structure in this manner permits it to float anywhere in the specified address range. This
permits the System BIOS developer to locate the structure within their ROM without having to be
concerned about it interfering with other structures that they may have specified at fixed addresses.