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.

Device <strong>Configuration</strong><br />

APIC Device”. Any I/O APIC device that either supports hot-plug or is not described in the MADT<br />

must contain a _GSB object.<br />

If the I/O APIC device also contains a _MAT object, OSPM evaluates the _GSB object first before<br />

evaluating the _MAT object. By providing the Global System Interrupt Base of the I/O APIC, this<br />

object enables OSPM to process only the _MAT entries that correspond to the I/O APIC device. See<br />

Section 6.2.10, “_MAT (Multiple APIC Table Entry)”. Since _MAT is allowed to potentially return<br />

all the MADT entries for the entire platform, _GSB is needed in the I/O APIC device scope to enable<br />

OSPM to identify the entries that correspond to that device.<br />

If an I/O APIC device is activated by a device-specific driver, the physical address used to access the<br />

I/O APIC will be exposed by the driver <strong>and</strong> cannot be determined from the _MAT object. In this<br />

case, OSPM cannot use the _MAT object to determine the Global System Interrupt Base<br />

corresponding to the I/O APIC device <strong>and</strong> hence requires the _GSB object.<br />

The Global System Interrupt Base is a 64-bit value representing the corresponding I/OAPIC device<br />

as defined in Section 5.2.13, “Global System Interrupts”.<br />

Arguments:<br />

None<br />

Return Value:<br />

An Integer containing the interrupt base<br />

Example ASL for _GSB usage for a non-PCI based I/O APIC Device:<br />

Scope(\_SB) {<br />

…<br />

Device(APIC) {<br />

// I/O APIC Device<br />

Name(_HID, “ACPI0009”)<br />

// ACPI ID for I/O APIC<br />

Name(_CRS, ResourceTemplate()<br />

{ …}) // only one resource pointing to I/O APIC register base<br />

Method(_GSB){<br />

Return (0x10) // Global System Interrupt Base for I/O APIC starts at 16<br />

}<br />

} // end APIC<br />

} // end scope SB<br />

Example ASL for _GSB usage for a PCI-based I/O APIC Device:<br />

Scope(\_SB) {<br />

Device(PCI0)<br />

// Host bridge<br />

Name(_HID, EISAID("PNP0A03")) // Need _HID for root device<br />

Device(PCI1) {<br />

// I/O APIC PCI Device<br />

Name(_ADR,0x00070000)<br />

Method(_GSB){<br />

Return (0x18) // Global System Interrupt Base for I/O APIC starts at 24<br />

}<br />

} // end PCI1<br />

} // end PCI0<br />

} // end scope SB<br />

6.2.8 _HPP (Hot Plug Parameters)<br />

This optional object evaluates to a package containing the cache-line size, latency timer, SERR<br />

enable, <strong>and</strong> PERR enable values to be used when configuring a PCI device inserted into a hot-plug<br />

Version 6.0 303

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

Saved successfully!

Ooh no, something went wrong!