|  | 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 | 
|  |  | 
|  | The userspace utilities can be built from the kernel source tree using | 
|  | 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" |