27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACPI-Defined Devices <strong>and</strong> Device-Specific Objects<br />

Emulation mode<br />

Native mode<br />

Hybrid Device<br />

Optional mode supported by a SATA HBA. Allows non-native<br />

SATA aware software to access SATA devices via traditional<br />

task file registers.<br />

Optional mode supported by a SATA HBA. Allows native SATA<br />

aware software to access SATA devices via registers that are<br />

specific to the HBA.<br />

Refers to a SATA HBA that implements both an emulation <strong>and</strong> a<br />

native programming interface.<br />

9.8.3.2 Overview<br />

A SATA HBA differs from an IDE controller in a number of ways. First, it can save its complete<br />

device context. Second, it replaces IDE channels, which may support up to 2 attached devices, with<br />

ports, which support only a single attached device, unless a port multiplier is present. See the SATA<br />

spec at “Links to ACPI-Related Documents” (http://uefi.org/acpi) under the heading "SATA<br />

<strong>Specification</strong>"for more information. Finally, SATA does not require timing information from the<br />

platform, allowing a simplification in how SATA controllers are represented in ACPI. (_GTM <strong>and</strong><br />

_STM are replaced by the simpler _SDD method.)<br />

All ports, even those attached off a port multiplier, are represented as children directly under the<br />

SATA controller device. This is practical because the SATA specification does not allow a port<br />

multiplier to be attached to a port multiplier. Each port’s _ADR indicates to which root port they are<br />

connected, as well as the port multiplier location, if applicable. (See Table 6-168 for _ADR format.)<br />

Since this specification only covers the configuration of motherboard devices, it is also the case that<br />

the control methods defined in this section cannot be used to send taskfiles to devices attached via<br />

either an add-in SATA HBA, or attached via a motherboard SATA HBA, if used with a port<br />

multiplier that is not also on the motherboard.<br />

The following shows an example SATA namespace:<br />

\_SB<br />

- System bus<br />

PCI0<br />

- PCI bus<br />

SATA - SATA Controller device<br />

ADR<br />

- Indicates address of the controller on the PCI bus<br />

PR0<br />

- <strong>Power</strong> resources needed for D0 power state<br />

PRT0 - Port 0 device<br />

_ADR - Indicates physical port <strong>and</strong> port multiplier topology<br />

_SDD - Identify information for drive attached to this port<br />

_GTF - Control method to get task file<br />

PRTn - Port n device<br />

_ADR - Indicates physical port <strong>and</strong> port multiplier topology<br />

_SDD - Identify information for drive attached to this port<br />

_GTF - Control method to get task file<br />

9.8.3.3 SATA controller-specific control methods<br />

In order to ensure proper interaction between OSPM, the firmware, <strong>and</strong> devices attached to the<br />

SATA controller, it is a requirement that OSPM execute the _SDD <strong>and</strong> _GTF control methods when<br />

certain events occur. OSPM’s response to events must be as follows:<br />

Version 6.0 513

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

Saved successfully!

Ooh no, something went wrong!