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

Page 460

Advertising
background image

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

Advertising