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.

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

8.4.4.4.1 Example<br />

The following ASL describes a system that uses _RDI to describe the dependencies between three<br />

power resources <strong>and</strong> system level power states:<br />

<strong>Power</strong>Resource(PWRA,0,0) {<br />

Method(_ON) {…}<br />

Method(_OFF) {…}<br />

Method(_STA) {…}<br />

}<br />

<strong>Power</strong>Resource(PWRB,0,0) {<br />

Method(_ON) {…}<br />

Method(_OFF) {…}<br />

Method(_STA) {…}<br />

}<br />

<strong>Power</strong>Resource(PWRC,0,0) {}<br />

// power rail local to DEVA<br />

// active power resource (_OFF turns rail off)<br />

// power rail shared between DEVB <strong>and</strong> the processor<br />

// active power resource (_OFF drives platform vote)<br />

// clock rail shared between DEVC <strong>and</strong> the processor<br />

// passive power resource<br />

Device (DEVA) {<br />

Name(_PR0,Package(){PWRA})<br />

}<br />

Device (DEVB) {<br />

Name(_PR0,Package(){PWRB})<br />

}<br />

Device (DEVC) {<br />

Name(_PR0,Package(){PWRC})<br />

}<br />

Device (SYM) {<br />

Name(_RDI,<br />

Package() {<br />

0, // Revision<br />

Package(){}<br />

// Local State 1 has no power resource<br />

// dependencies<br />

Package(){PWRA}<br />

// Local State 2 cannot be entered if DEVA<br />

// is in D0 due to PWRA<br />

Package(){PWRA, PWRB, PWRC} // Local State 3 cannot be<br />

entered if<br />

…<br />

})<br />

// DEVA is in D0 (due to PWRA), DEVB is in<br />

// D0 (due to PWRB) or DEVC is in D0 (due to<br />

// PWRC)<br />

OSPM will turn the traditional power resource (PWRA) ON or OFF by waiting for the reference<br />

count to reach 0 (meaning DEVA has left D0) <strong>and</strong> running the _OFF method. Similarly, PWRB is<br />

turned ON or OFF based on the state of DEVB. Note that because the CPUs require the shared<br />

power rail to be ON while they are running, PWRB’s _ON <strong>and</strong> _OFF drive a vote rather than the<br />

physical HW controls for the power rail. In this case, _STA reflects the status of the vote rather than<br />

the physical state of PWRB.<br />

OSPM guarantees ordering between PWRA/PWRB’s _ON <strong>and</strong> _OFF transitions <strong>and</strong> DEVA/<br />

DEVB’s D-state transitions. That is, PWRA can only be turned OFF after DEVA has left D0, <strong>and</strong><br />

must be turned ON before transitioning DEVA to D0. However, the OS requirements for ordering<br />

460 April, 2015 Version 6.0

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

Saved successfully!

Ooh no, something went wrong!