2016-07-07 15:10:45 +08:00
|
|
|
The AML Debugger
|
|
|
|
|
|
|
|
Copyright (C) 2016, Intel Corporation
|
|
|
|
Author: Lv Zheng <lv.zheng@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
This document describes the usage of the AML debugger embedded in the Linux
|
|
|
|
kernel.
|
|
|
|
|
|
|
|
1. Build the debugger
|
|
|
|
|
|
|
|
The following kernel configuration items are required to enable the AML
|
|
|
|
debugger interface from the Linux kernel:
|
|
|
|
|
|
|
|
CONFIG_ACPI_DEBUGGER=y
|
|
|
|
CONFIG_ACPI_DEBUGGER_USER=m
|
|
|
|
|
2017-03-15 07:05:43 +08:00
|
|
|
The userspace utilities can be built from the kernel source tree using
|
2016-07-07 15:10:45 +08:00
|
|
|
the following commands:
|
|
|
|
|
|
|
|
$ cd tools
|
|
|
|
$ make acpi
|
|
|
|
|
|
|
|
The resultant userspace tool binary is then located at:
|
|
|
|
|
|
|
|
tools/acpi/power/acpi/acpidbg/acpidbg
|
|
|
|
|
|
|
|
It can be installed to system directories by running "make install" (as a
|
|
|
|
sufficiently privileged user).
|
|
|
|
|
|
|
|
2. Start the userspace debugger interface
|
|
|
|
|
|
|
|
After booting the kernel with the debugger built-in, the debugger can be
|
|
|
|
started by using the following commands:
|
|
|
|
|
|
|
|
# mount -t debugfs none /sys/kernel/debug
|
|
|
|
# modprobe acpi_dbg
|
|
|
|
# tools/acpi/power/acpi/acpidbg/acpidbg
|
|
|
|
|
|
|
|
That spawns the interactive AML debugger environment where you can execute
|
|
|
|
debugger commands.
|
|
|
|
|
|
|
|
The commands are documented in the "ACPICA Overview and Programmer Reference"
|
|
|
|
that can be downloaded from
|
|
|
|
|
|
|
|
https://acpica.org/documentation
|
|
|
|
|
|
|
|
The detailed debugger commands reference is located in Chapter 12 "ACPICA
|
|
|
|
Debugger Reference". The "help" command can be used for a quick reference.
|
|
|
|
|
|
|
|
3. Stop the userspace debugger interface
|
|
|
|
|
|
|
|
The interactive debugger interface can be closed by pressing Ctrl+C or using
|
|
|
|
the "quit" or "exit" commands. When finished, unload the module with:
|
|
|
|
|
|
|
|
# rmmod acpi_dbg
|
|
|
|
|
|
|
|
The module unloading may fail if there is an acpidbg instance running.
|
|
|
|
|
|
|
|
4. Run the debugger in a script
|
|
|
|
|
|
|
|
It may be useful to run the AML debugger in a test script. "acpidbg" supports
|
|
|
|
this in a special "batch" mode. For example, the following command outputs
|
|
|
|
the entire ACPI namespace:
|
|
|
|
|
|
|
|
# acpidbg -b "namespace"
|