| .. SPDX-License-Identifier: GPL-2.0 | 
 | .. include:: <isonum.txt> | 
 |  | 
 | ================ | 
 | The AML Debugger | 
 | ================ | 
 |  | 
 | :Copyright: |copy| 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/power/acpi/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/power/acpi/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" |