Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
8-20 12/01/02 Version 1.10
8.4 Device Path Generation Rules
8.4.1 Housekeeping Rules
The Device Path is a set of Device Path nodes. The Device Path must be terminated by an End of
Device Path node with a sub-type of End the Entire Device Path. A NULL Device Path consists of
a single End Device Path Node. A Device Path that contains a NULL pointer and no Device Path
structures is illegal.
All Device Path nodes start with the generic Device Path structure. Unknown Device Path types
can be skipped when parsing the Device Path since the length field can be used to find the next
Device Path structure in the stream. Any future additions to the Device Path structure types will
always start with the current standard header. The size of a Device Path can be determined by
traversing the generic Device Path structures in each header and adding up the total size of the
Device Path. This size will include the four bytes of the End of Device Path structure.
Multiple hardware devices may be pointed to by a single Device Path. Each hardware device will
contain a complete Device Path that is terminated by the Device Path End Structure. The Device
Path End Structures that do not end the Device Path contain a sub-type of End This Instance of the
Device Path. The last Device Path End Structure contains a sub-type of End Entire Device Path.
8.4.2 Rules with ACPI _HID and _UID
As described in the ACPI specification, ACPI supports several different kinds of device
identification objects, including _HID, _CID and _UID. The _UID device identification objects are
optional in ACPI and only required if more than one _HID exists with the same ID. The ACPI
Device Path structure must contain a zero in the _UID field if the ACPI name space does not
implement _UID. The _UID field is a unique serial number that persists across reboots.
If a device in the ACPI name space has a _HID and is described by a _CRS (Current Resource
Setting) then it should be described by an ACPI Device Path structure. A _CRS implies that a
device is not mapped by any other standard. A _CRS is used by ACPI to make a nonstandard
device into a Plug and Play device. The configuration methods in the ACPI name space allow the
ACPI driver to configure the device in a standard fashion. The presence of a _CID determines
whether the ACPI Device Path node or the Expanded ACPI Device Path node should be used.
Table 8-30 maps ACPI _CRS devices to EFI Device Path.
Table 8-30. ACPI _CRS to EFI Device Path Mapping
ACPI _CRS Item EFI Device Path
PCI Root Bus ACPI Device Path: _HID PNP0A03, _UID
Floppy ACPI Device Path: _HID PNP0604, _UID drive select encoding 0-3
Keyboard ACPI Device Path: _HID PNP0301, _UID 0
Serial Port ACPI Device Path: _HID PNP0501, _UID Serial Port COM number 0-3
Parallel Port ACPI Device Path: _HID PNP0401, _UID LPT number 0-3