Plug and Play BIOS Specification
Plug and Play BIOS Specification 1.0A Page 53
Appendix A: Generic Option ROM Headers__________
Generic Option ROM Header expansion
(Offsets are all based from the beginning of the Header)
Offset Length Value Description
0h DWORD $??? (ASCII) Signature Generic
04h BYTE Varies Structure Revision Generic
05h BYTE Varies Length (in 16 byte increments) Generic
06h WORD Varies Offset of next Header (0000 if none) Generic
08h BYTE 0FFFFh Reserved Generic
09h BYTE Varies Checksum Generic
10h Varies Varies Specific Header Type Data Specific
Signature - All Expansion Headers will contain a unique expansion header identifier. Each different
Expansion Header will have its own unique signature. Software that wishes to make use of any given
Expansion Header simply traverses the linked list of Generic Expansion Headers until the Expansion
Header with the desired signature is found, or the end of the list is encountered.
Example: The Plug and Play expansion header's identifier is the ASCII string "$PnP" or hex 24 50 6E
50h.
Structure Revision - This is an ordinal value that indicates the revision number of this structure only and
does not imply a level of compliance with the Plug and Play BIOS version.
Length - Length of the entire Expansion Header expressed in sixteen byte blocks. The length count starts
at the Signature field.
Offset of Next Header - This location contains a link to then next expansion ROM header in this Option
ROM. If there are no other expansion ROM headers then this field will have a value of 0h.
Reserved - Reserved for Expansion
Checksum - Each Expansion Header is checksummed individually. This allows the software that wishes
to make use of an expansion header the ability to determine if the expansion header is valid.
The system software can determine if the expansion header is valid by performing a Checksum operation.
The method for validating the checksum is to add up Length bytes, including the Checksum field, into an
8-bit value. A resulting sum of zero indicates a valid checksum operation.
Specific Header data - This area is used by the specific device header and is defined uniquely for each
Expansion Header.