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.

Platform Communications Channel (PCC)<br />

Comm<strong>and</strong> 1 0 If set, the platform has completed processing the last comm<strong>and</strong>.<br />

Complete<br />

SCI Doorbell 1 1 If set, the platform has issued a Doorbell Interrupt to this subspace.<br />

OSPM must check the Comm<strong>and</strong> Complete <strong>and</strong> Platform<br />

Notification fields to determine the cause of the Interrupt.<br />

Error 1 2 If set, an error occurred executing the last comm<strong>and</strong>.<br />

Platform<br />

Notification<br />

1 3 If set, indicates the platform is issuing an asynchronous notification<br />

to OSPM.<br />

Reserved 12 4 Reserved.<br />

Note: OSPM (either in an Interrupt h<strong>and</strong>ler or via polling) is required to detect that the Comm<strong>and</strong><br />

Complete bit has been set <strong>and</strong> to clear it before issuing another comm<strong>and</strong>. While waiting for this<br />

bit to be set, OSPM must not modify any portion of the shared memory region.<br />

Note: The Doorbell Interrupt bit is required to be cleared in OSPM’s Interrupt h<strong>and</strong>ler so that a new event<br />

can be detected.<br />

14.3 Doorbell Protocol<br />

The doorbell is used by OSPM to notify the platform that the shared memory region contains a valid<br />

comm<strong>and</strong> that is ready to be processed. A doorbell consists of a hardware register that is accessed<br />

via I/O or memory mapped I/O, abstracted in the doorbell field of the PCC subspace structure.<br />

OSPM rings the doorbell by performing a read/modify/write cycle on the specified register,<br />

preserving <strong>and</strong> setting the bits specified in the preserve <strong>and</strong> write mask of the PCC subspace<br />

structure.<br />

To ensure consistency of the shared memory region, the shared memory region is exclusively<br />

owned by OSPM or the platform at any point in time. After being initialized by the platform, the<br />

region is owned by OSPM. Writing the doorbell register transfers ownership of the memory region<br />

to the platform. The platform transfers ownership back by setting the Comm<strong>and</strong> Complete bit in the<br />

Status field.<br />

Note: All accesses to the Status Field must be made using interlocked operations, by both entities<br />

sharing the channel.<br />

14.4 Platform Notification<br />

The doorbell protocol is a synchronous notification from OSPM to the platform to process a<br />

comm<strong>and</strong>. If the platform wants to notify OSPM of an event asynchronously, it may set the SCI<br />

Doorbell Interrupt <strong>and</strong> Platform Notification status bits <strong>and</strong> issue a Doorbell Interrupt. OSPM will<br />

service the Interrupt, clear the Doorbell Interrupt <strong>and</strong> Platform Notification bits, <strong>and</strong> service the<br />

platform notification. The meaning of the platform notification <strong>and</strong> the steps required to service it<br />

are defined by the individual components utilizing the PCC interface.<br />

The platform must wait until OSPM has issued a consumer defined comm<strong>and</strong> that serves to notify<br />

the platform that OSPM is ready to service Platform Notifications. The comm<strong>and</strong> is subspace<br />

specific <strong>and</strong> may not be supported by all subspaces. Platform Notifications must be used in<br />

conjunction with an interrupt. Polling for Platform Notifications is not supported.<br />

Version 6.0 681

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

Saved successfully!

Ooh no, something went wrong!