Check out my first novel, midnight's simulacra!
ACPI
From dankwiki
Not to be confused with APIC. The second worst type of coder in the world is the kind that shows up with a bloody shovel. The worst kind is a BIOS coder. Upwards and onwards to ACPI, a creation of the Advanced Configuration and Power Interface group.
DSDT
Differentiated System Description Tables.
[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) $
Rebuilding a decompiled DSDT
[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) $
acpidump/acpixtract
acpidump differs subtly and annoyingly between Debian and FreeBSD.
[recombinator](0) $ sudo acpidump -o recombinator.acpi [recombinator](0) $ acpixtract -l recombinator.acpi Signature Length OemId OemTableId OemRevision CompilerId CompilerRevision DSDT 17452 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 FACS 64 FACP 116 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 APIC 120 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 WDDT 64 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 MCFG 60 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 ASF! 166 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 HPET 56 "INTEL " "DG965WH " 000006C1 "MSFT" 01000013 SSDT 524 "INTEL " "CpuPm " 000006C1 "MSFT" 01000013 SSDT 373 "INTEL " "Cpu0Ist " 000006C1 "MSFT" 01000013 SSDT 373 "INTEL " "Cpu1Ist " 000006C1 "MSFT" 01000013 SSDT 373 "INTEL " "Cpu2Ist " 000006C1 "MSFT" 01000013 SSDT 373 "INTEL " "Cpu3Ist " 000006C1 "MSFT" 01000013 RSDT 80 "INTEL " "DG965WH " 000006C1 " " 01000013 RSDP "INTEL " Found 15 ACPI tables [20060324] [recombinator](0) $ acpixtract recombinator.acpi Acpi table [DSDT] - 17452 bytes written to DSDT.dat Acpi table [SSDT] - 524 bytes written to SSDT1.dat Acpi table [SSDT] - 373 bytes written to SSDT2.dat Acpi table [SSDT] - 373 bytes written to SSDT3.dat Acpi table [SSDT] - 373 bytes written to SSDT4.dat Acpi table [SSDT] - 373 bytes written to SSDT5.dat [recombinator](0) $ iasl -d DSDT.dat Intel ACPI Component Architecture AML Disassembler version 20061109 [May 15 2007] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0a Loading Acpi table from file DSDT.dat Acpi table [DSDT] successfully installed and loaded Pass 1 parse of [DSDT] Pass 2 parse of [DSDT] Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) Parsing completed Disassembly completed, written to "DSDT.dsl" [recombinator](0) $
Specifications
The current version is 3.0, amended as 3.0a. Version 4.0 is under development.
See also
- Linux ACPI page at http://www.lesswatts.org/projects/acpi/
- Legacy info regarding Linux DSDT replacement
- Intel's ACPI page, including iasl.