Lv Zheng | 1461d8a | 2016-07-07 15:10:45 +0800 | [diff] [blame] | 1 | The AML Debugger |
| 2 | |
| 3 | Copyright (C) 2016, Intel Corporation |
| 4 | Author: Lv Zheng <lv.zheng@intel.com> |
| 5 | |
| 6 | |
| 7 | This document describes the usage of the AML debugger embedded in the Linux |
| 8 | kernel. |
| 9 | |
| 10 | 1. Build the debugger |
| 11 | |
| 12 | The following kernel configuration items are required to enable the AML |
| 13 | debugger interface from the Linux kernel: |
| 14 | |
| 15 | CONFIG_ACPI_DEBUGGER=y |
| 16 | CONFIG_ACPI_DEBUGGER_USER=m |
| 17 | |
| 18 | The userspace utlities can be built from the kernel source tree using |
| 19 | the following commands: |
| 20 | |
| 21 | $ cd tools |
| 22 | $ make acpi |
| 23 | |
| 24 | The resultant userspace tool binary is then located at: |
| 25 | |
| 26 | tools/acpi/power/acpi/acpidbg/acpidbg |
| 27 | |
| 28 | It can be installed to system directories by running "make install" (as a |
| 29 | sufficiently privileged user). |
| 30 | |
| 31 | 2. Start the userspace debugger interface |
| 32 | |
| 33 | After booting the kernel with the debugger built-in, the debugger can be |
| 34 | started by using the following commands: |
| 35 | |
| 36 | # mount -t debugfs none /sys/kernel/debug |
| 37 | # modprobe acpi_dbg |
| 38 | # tools/acpi/power/acpi/acpidbg/acpidbg |
| 39 | |
| 40 | That spawns the interactive AML debugger environment where you can execute |
| 41 | debugger commands. |
| 42 | |
| 43 | The commands are documented in the "ACPICA Overview and Programmer Reference" |
| 44 | that can be downloaded from |
| 45 | |
| 46 | https://acpica.org/documentation |
| 47 | |
| 48 | The detailed debugger commands reference is located in Chapter 12 "ACPICA |
| 49 | Debugger Reference". The "help" command can be used for a quick reference. |
| 50 | |
| 51 | 3. Stop the userspace debugger interface |
| 52 | |
| 53 | The interactive debugger interface can be closed by pressing Ctrl+C or using |
| 54 | the "quit" or "exit" commands. When finished, unload the module with: |
| 55 | |
| 56 | # rmmod acpi_dbg |
| 57 | |
| 58 | The module unloading may fail if there is an acpidbg instance running. |
| 59 | |
| 60 | 4. Run the debugger in a script |
| 61 | |
| 62 | It may be useful to run the AML debugger in a test script. "acpidbg" supports |
| 63 | this in a special "batch" mode. For example, the following command outputs |
| 64 | the entire ACPI namespace: |
| 65 | |
| 66 | # acpidbg -b "namespace" |