ACPI tables have an essential data block (the DSDT, Differentiated System Description Table), that includes information used on the kernel side such as detailed information about PnP hardware, procedures for controlling power management support and so on. The acpidump utility can extract the DSDT data block from physical memory and store it into a DSDT data file, and also can generate an output in ASL from a given DSDT data file.
When
acpidump
is invoked without the
-f
option, it will read ACPI tables from physical
memory via a special file
/dev/mem
and dump them.
First it searches for the RSDP
(Root System Description Pointer),
which has the signature
"RSD PTR ,
and then gets the RSDT
(Root System Description Table),
which includes a list of pointers to physical memory addresses
for other tables.
The RSDT itself and all other tables linked from RSDT are generically
called SDTs
(System Description Tables)
and their header has a common format which consists of items
such as Signature, Length, Revision, Checksum, OEMID, OEM Table ID,
OEM Revision, Creator ID and Creator Revision.
The
acpidump
utility dumps contents of these SDTs.
For further information about formats of each table,
see chapter 5:
``ACPI Software Programming Model''
from the ACPI specifications referenced below.
There is always a pointer to a physical memory address in RSDT for FACP (Fixed ACPI Description Table). The FACP defines static system information about power management support (ACPI Hardware Register Implementation) such as interrupt mode (INT_MODEL), SCI interrupt number, SMI command port (SMI_CMD) and location of ACPI registers. The FACP also has a pointer to a physical memory address for DSDT, which includes information used on the kernel side such as PnP, power management support and so on. While the other tables are described in fixed format, the DSDT consists of AML data which is compiled from sources written in free formated ASL, which is the description language for ACPI. When acpidump outputs DSDT, it disassembles the AML data and formats it as ASL.
)
macros for Buffer
objects that contain valid resource streams.
These macros are defined in the ACPI 2.0 specification section
16.2.4.
/dev/mem
# acpidump -o foo.dsdt > foo.asl
Some contributions made by Chitoshi Ohsawa <ohsawa@catv1.ccn-net.ne.jp>, Takayasu IWANASHI <takayasu@wendy.a.perfect-liberty.or.jp>, Yoshihiko SARUMARU <mistral@imasy.or.jp>, Hiroki Sato <hrs@FreeBSD.org>, Michael Lucas <mwlucas@blackhelicopters.org> and Michael Smith <msmith@FreeBSD.org>.