Extensible Firmware Interface Specification
12-42 12/01/02 Version 1.10
12.2.1 PCI Root Bridge Device Paths
An EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL must be installed on a handle for its services to
be available to EFI drivers. In addition to the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL, an
EFI_DEVICE_PATH
must also be installed on the same handle. See Chapter 5 for a detailed
description of the EFI_DEVICE_PATH.
Typically, an ACPI Device Path Node is used to describe a PCI Root Bridge. Depending on the
bus hierarchy in the system, additional device path nodes may precede this ACPI Device Path
Node. A desktop system will typically contain only one PCI Root Bridge, so there would be one
handle with a EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL and an EFI_DEVICE_PATH. A
server system may contain multiple PCI Root Bridges, so it would contain a handle for each PCI
Root Bridge present, and on each of those handles would be an
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL and an EFI_DEVICE_PATH. In all cases, the
contents of the ACPI Device Path Nodes for PCI Root Bridges must match the information present
in the ACPI tables for that system.
Table 12-4 shows an example device path for a PCI Root Bridge in a desktop system. Today, a
desktop system typically contains one PCI Root Bridge. This device path consists of an ACPI
Device Path Node, and a Device Path End Structure. The _HID and _UID must match the ACPI
table description of the PCI Root Bridge. For a system with only one PCI Root Bridge, the _UID
value is usually 0x0000. The shorthand notation for this device path is ACPI(PNP0A03,0).
Table 12-4. PCI Root Bridge Device Path for a Desktop System
Byte
Offset
Byte
Length
Data
Description
0x00 0x01 0x02 Generic Device Path Header – Type ACPI Device Path
0x01 0x01 0x01 Sub type – ACPI Device Path
0x02 0x02 0x0C Length – 0x0C bytes
0x04 0x04 0x41D0,
0x0A03
_HID PNP0A03 – 0x41D0 represents a compressed string ‘PNP’ and is in
the low order bytes
0x08 0x04 0x0000 _UID
0x0C 0x01 0xFF Generic Device Path Header – Type End of Hardware Device Path
0x0D 0x01 0xFF Sub type – End of Entire Device Path
0x0E 0x02 0x04 Length – 0x04 bytes