ACPI: Difference between revisions
No edit summary |
|||
| (11 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Not to be confused with [[APIC]]. | Not to be confused with [[APIC]]. The second worst type of coder in the world is the kind that [http://geekz.co.uk/lovesraymond/archive/so-i-married-a-kernel-programmer shows up with a bloody shovel]. The worst kind is a [http://dankamongmen.livejournal.com/#entry_298962 BIOS coder]. Upwards and onwards to ACPI, a creation of the [http://www.acpi.info/ Advanced Configuration and Power Interface] group. | ||
==Specifications== | |||
As of September 2019, the current version of ACPI is Revision 6.3, published January 2019. It is now published as part of the [[UEFI]] standards, and administered by the UEFI Forum. | |||
* [https://uefi.org/sites/default/files/resources/ACPI_6_3_final_Jan30.pdf ACPI 6.3] specification | |||
==acpidump/acpixtract== | |||
<tt>acpidump</tt> differs subtly and annoyingly between [[Debian]] and [[FreeBSD]]. | <tt>acpidump</tt> differs subtly and annoyingly between [[Debian]] and [[FreeBSD]]. | ||
<pre>[recombinator](0) $ sudo acpidump -o recombinator.acpi | <pre>[recombinator](0) $ sudo acpidump -o recombinator.acpi | ||
| Line 49: | Line 52: | ||
[recombinator](0) $</pre> | [recombinator](0) $</pre> | ||
== | ==DSDT== | ||
Differentiated System Description Tables. | |||
* [http://www.acpi.info/ | <pre> | ||
* [http://www.acpi | [recombinator](0) $ sudo acpidump -t DSDT -b -o acpidump.dsdt | ||
[recombinator](0) $ iasl -d acpidump.dsdt | |||
Intel ACPI Component Architecture | |||
AML Disassembler version 20061109 [Mar 19 2009] | |||
Copyright (C) 2000 - 2006 Intel Corporation | |||
Supports ACPI Specification Revision 3.0a | |||
Loading Acpi table from file acpidump.dsdt | |||
Acpi table [DSDT] successfully installed and loaded | |||
Pass 1 parse of [DSDT] | |||
Pass 2 parse of [DSDT] | |||
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) | |||
..................................................... etc | |||
Parsing completed | |||
Disassembly completed, written to "acpidump.dsl" | |||
[recombinator](0) $ </pre> | |||
===Rebuilding a decompiled DSDT=== | |||
<pre>[recombinator](0) $ iasl -tc acpidump.dsl | |||
Intel ACPI Component Architecture | |||
ASL Optimizing Compiler version 20061109 [Mar 19 2009] | |||
Copyright (C) 2000 - 2006 Intel Corporation | |||
Supports ACPI Specification Revision 3.0a | |||
acpidump.dsl 2186: Acquire (MUT0, 0x0FFF) | |||
Warning 1103 - Possible operator timeout is ignored ^ | |||
ASL Input: acpidump.dsl - 5185 lines, 178349 bytes, 1615 keywords | |||
AML Output: acpidump.aml - 15771 bytes 546 named objects 1069 executable opcodes | |||
Compilation complete. 0 Errors, 1 Warnings, 0 Remarks, 597 Optimizations | |||
[recombinator](0) $ </pre> | |||
==SRAT== | |||
[http://lwn.net/Articles/7177/ Linux in 2009] gained support for parsing of the BIOS-provided SRAT table ([http://mail-index.netbsd.org/port-amd64/2009/11/23/msg001026.html NetBSD also had support] by later that year). The SRAT describes memory and processor topology, and the hot-pluggable status of all. | |||
* Use the CONFIG_X86_64_ACPI_NUMA kernel option to enable SRAT-based enumeration of [[NUMA]]. | |||
==See also== | |||
* [http://www.lesswatts.org/projects/acpi/ Linux ACPI] page at http://www.lesswatts.org/projects/acpi/ | |||
* Legacy info regarding [http://acpi.sourceforge.net/dsdt/index.php Linux DSDT] replacement | |||
* Intel's [http://www.intel.com/technology/IAPC/acpi/ ACPI] page, including <tt>iasl</tt>. | |||
* The MADT table can be used to discover [[SMP on x86|SMP]] topology | |||
[[Category: x86]] | |||