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.

Processor <strong>Configuration</strong> <strong>and</strong> Control<br />

platform might notify OSPM that the number of supported C States has changed as a result of an<br />

asynchronous AC insertion / removal event.<br />

The platform must specify unique C_State_Register addresses for all entries within a given _CST<br />

object.<br />

_CST eliminates the ACPI 1.0 restriction that all processors must have C State parity. With _CST,<br />

each processor can have its own characteristics independent of other processors. For example,<br />

processor 0 can support C1, C2 <strong>and</strong> C3, while processor 1 supports only C1.<br />

The fields in the processor structure remain for backward compatibility.<br />

Example<br />

Processor (<br />

\_SB.CPU0, // Processor Name<br />

1, // ACPI Processor number<br />

0x120, // PBlk system IO address<br />

6 ) // PBlkLen<br />

{<br />

Name(_CST, Package()<br />

{<br />

4, // There are four C-states defined here with three semantics<br />

// The third <strong>and</strong> fourth C-states defined have the same C3 entry semantics<br />

Package(){ResourceTemplate(){Register(FFixedHW, 0, 0, 0)}, 1, 20, 1000},<br />

Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x161)}, 2, 40, 750},<br />

Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x162)}, 3, 60, 500},<br />

Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x163)}, 3, 100, 250}<br />

})<br />

}<br />

Notice in the example above that OSPM should anticipate the possibility of a _CST object providing<br />

more than one entry with the same C_State_Type value. In this case OSPM must decide which<br />

C_State_Register it will use to enter that C state.<br />

Example<br />

This is an example usage of the _CST object using the typical values as defined in ACPI 1.0.<br />

Processor (<br />

\_SB.CPU0, // Processor Name<br />

1, // ACPI Processor number<br />

0x120, // PBLK system IO address<br />

6 ) // PBLK Len<br />

{<br />

Name(_CST, Package()<br />

{<br />

2, // There are two C-states defined here – C2 <strong>and</strong> C3<br />

Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x124)}, 2, 2, 750},<br />

Package(){ResourceTemplate(){Register(SystemIO, 8, 0, 0x125)}, 3, 65, 500}<br />

})<br />

}<br />

The platform will issue a Notify(\_SB.CPU0, 0x81) to inform OSPM to re-evaluate this object when<br />

the number of available processor power states changes.<br />

Version 6.0 431

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

Saved successfully!

Ooh no, something went wrong!