Extensible Firmware Interface Specification
328 12/12/00 Version 1.02
EFI will coordinate with a future revision of the PCI specification to allocate the code type of 0x03
to represent EFI images. This code type will signify that EFI extensions are present in the standard
PCI expansion ROM header.
Table 18-2. PCI Data Structure
Offset Byte Length Description
0x00 4 Signature, the string ‘PCIR’
0x04 2 Vendor Identification
0x06 2 Device Identification
0x08 2 Reserved
0x0a 2 PCI Data Structure Length
0x0c 1 PCI Data Structure Revision
0x0d 3 Class Code
0x10 2 Image Length
0x12 2 Revision Level of Code/Data
0x14 1 Code Type
0x15 1 Indicator. Used to identify if this is the last image in the ROM
0x16 2 Reserved
18.2 EFI PCI Expansion ROM HeaderA value of 0x03 in the code type field of the PCI data structure indicates that an EFI expansion
ROM header is present in the system. The EFI PCI Expansion ROM Header contains all the
standard entries defined in th e PCI Local Bus Specification. It also contains the offset to the EFI
driver image header. The offset to the EFI driver image header follows the same rules as the offset
to the PCI data structure in the PCI Local Bus Specification. That is the EFI PCI Expansion ROM
Header must be within the first 64 KB of the Standard PCI Expansion ROM header.
The EFI PCI Expansion ROM Header also contains information about the EFI driver image. The
size of the image is given in units of 512 bytes. The maximum size of a PCI Expansion ROM is
16 MB. The initialization size includes the size of the EFI PCI expansion ROM header, the EFI
image, and the PCI data structure. If the EFI PCI expansion ROM header is used in a context other
than the PCI Local Bus Specification definition of an expansion ROM the image size may be set to
zero.
The EFI expansion ROM header also contains some data that is included in the EFI image header.
This data is a short cut, and allows the code parsing the EFI PCI expansion ROM header to know if
it supports the image type that is pointed to by the EFI PCI expansion ROM header without
decoding the image. These fields include the image signature, subsystem value, and machine type.