27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Advanced</strong> <strong>Configuration</strong> <strong>and</strong> <strong>Power</strong> <strong>Interface</strong> <strong>Specification</strong><br />

must identify which device on the enumerable bus is identified by a particular address; the ACPI<br />

system firmware must supply an _ADR object for each device to enable this. A device object must<br />

contain either an _HID object or an _ADR object, but should not contain both.<br />

If any of these objects are implemented as control methods, these methods may depend on operation<br />

regions. Since the control methods may be evaluated before an operation region provider becomes<br />

available, the control method must be structured to execute in the absence of the operation region<br />

provider. (_REG methods notify the BIOS of the presence of operation region providers.) When a<br />

control method cannot determine the current state of the hardware due to a lack of operation region<br />

provider, it is recommended that the control method should return the condition that was true at the<br />

time that control passed from the BIOS to the OS. (The control method should return a default, boot<br />

value).<br />

6.1.1 _ADR (Address)<br />

This object is used to supply OSPM with the address of a device on its parent bus. An _ADR object<br />

must be used when specifying the address of any device on a bus that has a st<strong>and</strong>ard enumeration<br />

algorithm (see Section 3.7, “<strong>Configuration</strong> <strong>and</strong> Plug <strong>and</strong> Play”, for the situations when these devices<br />

do appear in the ACPI namespace).<br />

Arguments:<br />

None<br />

Return Value:<br />

An Integer containing the address of the device<br />

An _ADR object can be used to provide capabilities to the specified address even if a device is not<br />

present. This allows the system to provide capabilities to a slot on the parent bus.<br />

OSPM infers the parent bus <strong>and</strong> segment from the location of the _ADR object’s device package in<br />

the ACPI namespace. For more information about the positioning of device packages in the ACPI<br />

namespace, see Section 19.6.30, “Device (Declare Bus/Device Package)”<br />

_ADR object information must be static <strong>and</strong> can be defined for the following bus types listed in<br />

Table 6-168.<br />

Table 6-168 ADR Object Address Encodings<br />

BUS<br />

Address Encoding<br />

EISA EISA slot number 0–F<br />

Floppy Bus Drive select values used for programming the floppy controller to access the specified<br />

INT13 unit number. The _ADR Objects should be sorted based on drive select encoding<br />

from 0-3.<br />

IDE Controller 0–Primary Channel, 1–Secondary Channel<br />

IDE Channel 0–Master drive, 1–Slave drive<br />

Intel® High<br />

Definition Audio<br />

PCI<br />

High word – SDI (Serial Data In) ID of the codec that contains the function group.<br />

Low word – Node ID of the function group.<br />

High word–Device #, Low word–Function #. (for example, device 3, function 2 is<br />

0x00030002). To refer to all the functions on a device #, use a function number of FFFF).<br />

278 April, 2015 Version 6.0

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!