1 pci root bridge device paths – Intel Extensible Firmware Interface User Manual
Page 460

Extensible Firmware Interface Specification
12-42
12/01/02
Version 1.10
12.2.1 PCI Root Bridge Device Paths
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
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