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.

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

5.2.12 Multiple APIC Description Table (MADT)<br />

The ACPI interrupt model describes all interrupts for the entire system in a uniform interrupt model<br />

implementation. Supported interrupt models include the PC-AT-compatible dual 8259 interrupt<br />

controller, for Intel processor-based systems, the Intel <strong>Advanced</strong> Programmable Interrupt Controller<br />

(APIC) <strong>and</strong> Intel Streamlined <strong>Advanced</strong> Programmable Interrupt Controller (SAPIC), <strong>and</strong>, for ARM<br />

processor-based systems, the Generic Interrupt Controller (GIC). The choice of the interrupt<br />

model(s) to support is up to the platform designer. The interrupt model cannot be dynamically<br />

changed by the system firmware; OSPM will choose which model to use <strong>and</strong> install support for that<br />

model at the time of installation. If a platform supports multiple models, an OS will install support<br />

for only one of the models; it will not mix models. Multi-boot capability is a feature in many modern<br />

operating systems. This means that a system may have multiple operating systems or multiple<br />

instances of an OS installed at any one time. Platform designers must allow for this.<br />

This section describes the format of the Multiple APIC Description Table (MADT), which provides<br />

OSPM with information necessary for operation on systems with APIC, SAPIC or GIC<br />

implementations.<br />

ACPI represents all interrupts as "flat" values known as global system interrupts. Therefore to<br />

support APICs, SAPICs or GICs on an ACPI-enabled system, each used interrupt input must be<br />

mapped to the global system interrupt value used by ACPI. See Section 5.2.13. Global System<br />

Interrupts,” for a description of Global System Interrupts.<br />

Additional support is required to h<strong>and</strong>le various multi-processor functions that implementations<br />

might support (for example, identifying each processor's local interrupt controller ID).<br />

All addresses in the MADT are processor-relative physical addresses.<br />

Table 5-44 Multiple APIC Description Table (MADT) Format<br />

Field<br />

Byte<br />

Length<br />

Byte<br />

Offset<br />

Description<br />

Header<br />

Signature 4 0 ‘APIC’ Signature for the Multiple APIC Description Table.<br />

Length 4 4 Length, in bytes, of the entire MADT.<br />

Revision 1 8 3<br />

Checksum 1 9 Entire table must sum to zero.<br />

OEMID 6 10 OEM ID<br />

OEM Table ID 8 16 For the MADT, the table ID is the manufacturer model ID.<br />

OEM Revision 4 24 OEM revision of MADT for supplied OEM Table ID.<br />

Creator ID 4 28 Vendor ID of utility that created the table. For tables containing<br />

Definition Blocks, this is the ID for the ASL Compiler.<br />

Creator Revision 4 32 Revision of utility that created the table. For tables containing<br />

Definition Blocks, this is the revision for the ASL Compiler.<br />

Local Interrupt<br />

Controller Address<br />

4 36 The 32-bit physical address at which each processor can access<br />

its local interrupt controller.<br />

Flags 4 40 Multiple APIC flags. See Table 5-45 for a description of this field.<br />

138 April, 2015 Version 6.0

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

Saved successfully!

Ooh no, something went wrong!