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 />

5.2.12.1 MADT Processor Local APIC / SAPIC Structure Entry Order<br />

OSPM implementations may limit the number of supported processors on multi-processor<br />

platforms. OSPM executes on the boot processor to initialize the platform including other<br />

processors. To ensure that the boot processor is supported post initialization, two guidelines should<br />

be followed. The first is that OSPM should initialize processors in the order that they appear in the<br />

MADT. The second is that platform firmware should list the boot processor as the first processor<br />

entry in the MADT.<br />

The advent of multi-threaded processors yielded multiple logical processors executing on common<br />

processor hardware. ACPI defines logical processors in an identical manner as physical processors.<br />

To ensure that non multi-threading aware OSPM implementations realize optimal performance on<br />

platforms containing multi-threaded processors, two guidelines should be followed. The first is the<br />

same as above, that is, OSPM should initialize processors in the order that they appear in the<br />

MADT. The second is that platform firmware should list the first logical processor of each of the<br />

individual multi-threaded processors in the MADT before listing any of the second logical<br />

processors. This approach should be used for all successive logical processors.<br />

Failure of OSPM implementations <strong>and</strong> platform firmware to abide by these guidelines can result in<br />

both unpredictable <strong>and</strong> non optimal platform operation.<br />

5.2.12.2 Processor Local APIC Structure<br />

When using the APIC interrupt model, each processor in the system is required to have a Processor<br />

Local APIC record in the MADT, <strong>and</strong> a processor device object in the DSDT. OSPM does not<br />

expect the information provided in this table to be updated if the processor information changes<br />

during the lifespan of an OS boot. While in the sleeping state, processors are not allowed to be<br />

added, removed, nor can their APIC ID or Flags change. When a processor is not present, the<br />

Processor Local APIC information is either not reported or flagged as disabled.<br />

Table 5-47 Processor Local APIC Structure<br />

Field<br />

Byte<br />

Length<br />

Byte<br />

Offset<br />

Description<br />

Type 1 0 0 Processor Local APIC structure<br />

Length 1 1 8<br />

ACPI<br />

Processor UID<br />

1 2 The OS associates this Local APIC Structure with a processor object<br />

in the namespace when the _UID child object of the processor's<br />

device object (or the ProcessorId listed in the Processor declaration<br />

operator) evaluates to a numeric value that matches the numeric<br />

value in this field. Note that the use of the Processor declaration<br />

operator is deprecated. See the compatibility note in Section 5.2.12.2<br />

<strong>and</strong> see Section 19.6.102, “Processor (Declare Processor).”<br />

APIC ID 1 3 The processor’s local APIC ID.<br />

Flags 4 4 Local APIC flags. See Table 5-47 for a description of this field.<br />

Table 5-48 Local APIC Flags<br />

LocalAPIC Flags<br />

Bit<br />

Length<br />

Bit<br />

Offset<br />

Description<br />

140 April, 2015 Version 6.0

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

Saved successfully!

Ooh no, something went wrong!