1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 ==================== !! 3 ================= 4 ACPI CA Debug Output !! 4 ACPI Debug Output 5 ==================== !! 5 ================= 6 6 7 The ACPI CA can generate debug output. This d !! 7 The ACPI CA, the Linux ACPI core, and some ACPI drivers can generate debug 8 facility. !! 8 output. This document describes how to use this facility. 9 9 10 Compile-time configuration 10 Compile-time configuration 11 ========================== 11 ========================== 12 12 13 The ACPI CA debug output is globally enabled b !! 13 ACPI debug output is globally enabled by CONFIG_ACPI_DEBUG. If this config 14 config option is not set, the debug messages a !! 14 option is turned off, the debug messages are not even built into the >> 15 kernel. 15 16 16 Boot- and run-time configuration 17 Boot- and run-time configuration 17 ================================ 18 ================================ 18 19 19 When CONFIG_ACPI_DEBUG=y, you can select the c 20 When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages 20 you're interested in. At boot-time, use the a 21 you're interested in. At boot-time, use the acpi.debug_layer and 21 acpi.debug_level kernel command line options. 22 acpi.debug_level kernel command line options. After boot, you can use the 22 debug_layer and debug_level files in /sys/modu 23 debug_layer and debug_level files in /sys/module/acpi/parameters/ to control 23 the debug messages. 24 the debug messages. 24 25 25 debug_layer (component) 26 debug_layer (component) 26 ======================= 27 ======================= 27 28 28 The "debug_layer" is a mask that selects compo 29 The "debug_layer" is a mask that selects components of interest, e.g., a 29 specific part of the ACPI interpreter. To bui !! 30 specific driver or part of the ACPI interpreter. To build the debug_layer 30 for the "#define _COMPONENT" in an ACPI source !! 31 bitmask, look for the "#define _COMPONENT" in an ACPI source file. 31 32 32 You can set the debug_layer mask at boot-time 33 You can set the debug_layer mask at boot-time using the acpi.debug_layer 33 command line argument, and you can change it a 34 command line argument, and you can change it after boot by writing values 34 to /sys/module/acpi/parameters/debug_layer. 35 to /sys/module/acpi/parameters/debug_layer. 35 36 36 The possible components are defined in include !! 37 The possible components are defined in include/acpi/acoutput.h and 37 !! 38 include/acpi/acpi_drivers.h. Reading /sys/module/acpi/parameters/debug_layer 38 Reading /sys/module/acpi/parameters/debug_laye !! 39 shows the supported mask values, currently these:: 39 40 40 ACPI_UTILITIES 0x00000001 41 ACPI_UTILITIES 0x00000001 41 ACPI_HARDWARE 0x00000002 42 ACPI_HARDWARE 0x00000002 42 ACPI_EVENTS 0x00000004 43 ACPI_EVENTS 0x00000004 43 ACPI_TABLES 0x00000008 44 ACPI_TABLES 0x00000008 44 ACPI_NAMESPACE 0x00000010 45 ACPI_NAMESPACE 0x00000010 45 ACPI_PARSER 0x00000020 46 ACPI_PARSER 0x00000020 46 ACPI_DISPATCHER 0x00000040 47 ACPI_DISPATCHER 0x00000040 47 ACPI_EXECUTER 0x00000080 48 ACPI_EXECUTER 0x00000080 48 ACPI_RESOURCES 0x00000100 49 ACPI_RESOURCES 0x00000100 49 ACPI_CA_DEBUGGER 0x00000200 50 ACPI_CA_DEBUGGER 0x00000200 50 ACPI_OS_SERVICES 0x00000400 51 ACPI_OS_SERVICES 0x00000400 51 ACPI_CA_DISASSEMBLER 0x00000800 52 ACPI_CA_DISASSEMBLER 0x00000800 52 ACPI_COMPILER 0x00001000 53 ACPI_COMPILER 0x00001000 53 ACPI_TOOLS 0x00002000 54 ACPI_TOOLS 0x00002000 >> 55 ACPI_BUS_COMPONENT 0x00010000 >> 56 ACPI_AC_COMPONENT 0x00020000 >> 57 ACPI_BATTERY_COMPONENT 0x00040000 >> 58 ACPI_BUTTON_COMPONENT 0x00080000 >> 59 ACPI_SBS_COMPONENT 0x00100000 >> 60 ACPI_FAN_COMPONENT 0x00200000 >> 61 ACPI_PCI_COMPONENT 0x00400000 >> 62 ACPI_POWER_COMPONENT 0x00800000 >> 63 ACPI_CONTAINER_COMPONENT 0x01000000 >> 64 ACPI_SYSTEM_COMPONENT 0x02000000 >> 65 ACPI_THERMAL_COMPONENT 0x04000000 >> 66 ACPI_MEMORY_DEVICE_COMPONENT 0x08000000 >> 67 ACPI_VIDEO_COMPONENT 0x10000000 >> 68 ACPI_PROCESSOR_COMPONENT 0x20000000 54 69 55 debug_level 70 debug_level 56 =========== 71 =========== 57 72 58 The "debug_level" is a mask that selects diffe 73 The "debug_level" is a mask that selects different types of messages, e.g., 59 those related to initialization, method execut 74 those related to initialization, method execution, informational messages, etc. 60 To build debug_level, look at the level specif 75 To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT() 61 statement. 76 statement. 62 77 63 The ACPI interpreter uses several different le 78 The ACPI interpreter uses several different levels, but the Linux 64 ACPI core and ACPI drivers generally only use 79 ACPI core and ACPI drivers generally only use ACPI_LV_INFO. 65 80 66 You can set the debug_level mask at boot-time 81 You can set the debug_level mask at boot-time using the acpi.debug_level 67 command line argument, and you can change it a 82 command line argument, and you can change it after boot by writing values 68 to /sys/module/acpi/parameters/debug_level. 83 to /sys/module/acpi/parameters/debug_level. 69 84 70 The possible levels are defined in include/acp 85 The possible levels are defined in include/acpi/acoutput.h. Reading 71 /sys/module/acpi/parameters/debug_level shows 86 /sys/module/acpi/parameters/debug_level shows the supported mask values, 72 currently these:: 87 currently these:: 73 88 74 ACPI_LV_INIT 0x00000001 89 ACPI_LV_INIT 0x00000001 75 ACPI_LV_DEBUG_OBJECT 0x00000002 90 ACPI_LV_DEBUG_OBJECT 0x00000002 76 ACPI_LV_INFO 0x00000004 91 ACPI_LV_INFO 0x00000004 77 ACPI_LV_INIT_NAMES 0x00000020 92 ACPI_LV_INIT_NAMES 0x00000020 78 ACPI_LV_PARSE 0x00000040 93 ACPI_LV_PARSE 0x00000040 79 ACPI_LV_LOAD 0x00000080 94 ACPI_LV_LOAD 0x00000080 80 ACPI_LV_DISPATCH 0x00000100 95 ACPI_LV_DISPATCH 0x00000100 81 ACPI_LV_EXEC 0x00000200 96 ACPI_LV_EXEC 0x00000200 82 ACPI_LV_NAMES 0x00000400 97 ACPI_LV_NAMES 0x00000400 83 ACPI_LV_OPREGION 0x00000800 98 ACPI_LV_OPREGION 0x00000800 84 ACPI_LV_BFIELD 0x00001000 99 ACPI_LV_BFIELD 0x00001000 85 ACPI_LV_TABLES 0x00002000 100 ACPI_LV_TABLES 0x00002000 86 ACPI_LV_VALUES 0x00004000 101 ACPI_LV_VALUES 0x00004000 87 ACPI_LV_OBJECTS 0x00008000 102 ACPI_LV_OBJECTS 0x00008000 88 ACPI_LV_RESOURCES 0x00010000 103 ACPI_LV_RESOURCES 0x00010000 89 ACPI_LV_USER_REQUESTS 0x00020000 104 ACPI_LV_USER_REQUESTS 0x00020000 90 ACPI_LV_PACKAGE 0x00040000 105 ACPI_LV_PACKAGE 0x00040000 91 ACPI_LV_ALLOCATIONS 0x00100000 106 ACPI_LV_ALLOCATIONS 0x00100000 92 ACPI_LV_FUNCTIONS 0x00200000 107 ACPI_LV_FUNCTIONS 0x00200000 93 ACPI_LV_OPTIMIZATIONS 0x00400000 108 ACPI_LV_OPTIMIZATIONS 0x00400000 94 ACPI_LV_MUTEX 0x01000000 109 ACPI_LV_MUTEX 0x01000000 95 ACPI_LV_THREADS 0x02000000 110 ACPI_LV_THREADS 0x02000000 96 ACPI_LV_IO 0x04000000 111 ACPI_LV_IO 0x04000000 97 ACPI_LV_INTERRUPTS 0x08000000 112 ACPI_LV_INTERRUPTS 0x08000000 98 ACPI_LV_AML_DISASSEMBLE 0x10000000 113 ACPI_LV_AML_DISASSEMBLE 0x10000000 99 ACPI_LV_VERBOSE_INFO 0x20000000 114 ACPI_LV_VERBOSE_INFO 0x20000000 100 ACPI_LV_FULL_TABLES 0x40000000 115 ACPI_LV_FULL_TABLES 0x40000000 101 ACPI_LV_EVENTS 0x80000000 116 ACPI_LV_EVENTS 0x80000000 102 117 103 Examples 118 Examples 104 ======== 119 ======== 105 120 106 For example, drivers/acpi/acpica/evxfevnt.c co !! 121 For example, drivers/acpi/bus.c contains this:: 107 122 108 #define _COMPONENT ACPI_EVENTS !! 123 #define _COMPONENT ACPI_BUS_COMPONENT 109 ... 124 ... 110 ACPI_DEBUG_PRINT((ACPI_DB_INIT, "ACPI mode !! 125 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device insertion detected\n")); 111 126 112 To turn on this message, set the ACPI_EVENTS b !! 127 To turn on this message, set the ACPI_BUS_COMPONENT bit in acpi.debug_layer 113 and the ACPI_LV_INIT bit in acpi.debug_level. !! 128 and the ACPI_LV_INFO bit in acpi.debug_level. (The ACPI_DEBUG_PRINT 114 statement uses ACPI_DB_INIT, which is a macro !! 129 statement uses ACPI_DB_INFO, which is macro based on the ACPI_LV_INFO 115 definition.) 130 definition.) 116 131 117 Enable all AML "Debug" output (stores to the D 132 Enable all AML "Debug" output (stores to the Debug object while interpreting 118 AML) during boot:: 133 AML) during boot:: 119 134 120 acpi.debug_layer=0xffffffff acpi.debug_lev 135 acpi.debug_layer=0xffffffff acpi.debug_level=0x2 >> 136 >> 137 Enable PCI and PCI interrupt routing debug messages:: >> 138 >> 139 acpi.debug_layer=0x400000 acpi.debug_level=0x4 121 140 122 Enable all ACPI hardware-related messages:: 141 Enable all ACPI hardware-related messages:: 123 142 124 acpi.debug_layer=0x2 acpi.debug_level=0xff 143 acpi.debug_layer=0x2 acpi.debug_level=0xffffffff 125 144 126 Enable all ACPI_DB_INFO messages after boot:: 145 Enable all ACPI_DB_INFO messages after boot:: 127 146 128 # echo 0x4 > /sys/module/acpi/parameters/d 147 # echo 0x4 > /sys/module/acpi/parameters/debug_level 129 148 130 Show all valid component values:: 149 Show all valid component values:: 131 150 132 # cat /sys/module/acpi/parameters/debug_la 151 # cat /sys/module/acpi/parameters/debug_layer
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.