€•BŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ-/translations/zh_CN/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/zh_TW/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/it_IT/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ja_JP/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ko_KR/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/pt_BR/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/sp_SP/firmware-guide/acpi/debug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒG/var/lib/git/docbuild/linux/Documentation/firmware-guide/acpi/debug.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒACPI CA Debug Output”h]”hŒACPI CA Debug Output”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒYThe ACPI CA can generate debug output. This document describes how to use this facility.”h]”hŒYThe ACPI CA can generate debug output. This document describes how to use this facility.”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒCompile-time configuration”h]”hŒCompile-time configuration”…””}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhíh²hh³hÇh´K ubhÞ)”}”(hŒœThe ACPI CA debug output is globally enabled by CONFIG_ACPI_DEBUG. If this config option is not set, the debug messages are not even built into the kernel.”h]”hŒœThe ACPI CA debug output is globally enabled by CONFIG_ACPI_DEBUG. If this config option is not set, the debug messages are not even built into the kernel.”…””}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhíh²hubeh}”(h]”Œcompile-time-configuration”ah ]”h"]”Œcompile-time configuration”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Boot- and run-time configuration”h]”hŒ Boot- and run-time configuration”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´KubhÞ)”}”(hX:When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages you're interested in. At boot-time, use the acpi.debug_layer and acpi.debug_level kernel command line options. After boot, you can use the debug_layer and debug_level files in /sys/module/acpi/parameters/ to control the debug messages.”h]”hX<When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages you’re interested in. At boot-time, use the acpi.debug_layer and acpi.debug_level kernel command line options. After boot, you can use the debug_layer and debug_level files in /sys/module/acpi/parameters/ to control the debug messages.”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjh²hubeh}”(h]”Œboot-and-run-time-configuration”ah ]”h"]”Œ boot- and run-time configuration”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒdebug_layer (component)”h]”hŒdebug_layer (component)”…””}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj;h²hh³hÇh´KubhÞ)”}”(hŒÌThe "debug_layer" is a mask that selects components of interest, e.g., a specific part of the ACPI interpreter. To build the debug_layer bitmask, look for the "#define _COMPONENT" in an ACPI source file.”h]”hŒÔThe “debug_layer†is a mask that selects components of interest, e.g., a specific part of the ACPI interpreter. To build the debug_layer bitmask, look for the “#define _COMPONENT†in an ACPI source file.”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj;h²hubhÞ)”}”(hŒ¾You can set the debug_layer mask at boot-time using the acpi.debug_layer command line argument, and you can change it after boot by writing values to /sys/module/acpi/parameters/debug_layer.”h]”hŒ¾You can set the debug_layer mask at boot-time using the acpi.debug_layer command line argument, and you can change it after boot by writing values to /sys/module/acpi/parameters/debug_layer.”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hj;h²hubhÞ)”}”(hŒ?The possible components are defined in include/acpi/acoutput.h.”h]”hŒ?The possible components are defined in include/acpi/acoutput.h.”…””}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K$hj;h²hubhÞ)”}”(hŒQReading /sys/module/acpi/parameters/debug_layer shows the supported mask values::”h]”hŒPReading /sys/module/acpi/parameters/debug_layer shows the supported mask values:”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K&hj;h²hubhŒ literal_block”“”)”}”(hXYACPI_UTILITIES 0x00000001 ACPI_HARDWARE 0x00000002 ACPI_EVENTS 0x00000004 ACPI_TABLES 0x00000008 ACPI_NAMESPACE 0x00000010 ACPI_PARSER 0x00000020 ACPI_DISPATCHER 0x00000040 ACPI_EXECUTER 0x00000080 ACPI_RESOURCES 0x00000100 ACPI_CA_DEBUGGER 0x00000200 ACPI_OS_SERVICES 0x00000400 ACPI_CA_DISASSEMBLER 0x00000800 ACPI_COMPILER 0x00001000 ACPI_TOOLS 0x00002000”h]”hXYACPI_UTILITIES 0x00000001 ACPI_HARDWARE 0x00000002 ACPI_EVENTS 0x00000004 ACPI_TABLES 0x00000008 ACPI_NAMESPACE 0x00000010 ACPI_PARSER 0x00000020 ACPI_DISPATCHER 0x00000040 ACPI_EXECUTER 0x00000080 ACPI_RESOURCES 0x00000100 ACPI_CA_DEBUGGER 0x00000200 ACPI_OS_SERVICES 0x00000400 ACPI_CA_DISASSEMBLER 0x00000800 ACPI_COMPILER 0x00001000 ACPI_TOOLS 0x00002000”…””}”hj†sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´K(hj;h²hubeh}”(h]”Œdebug-layer-component”ah ]”h"]”Œdebug_layer (component)”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒ debug_level”h]”hŒ debug_level”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjœh²hh³hÇh´K8ubhÞ)”}”(hŒñThe "debug_level" is a mask that selects different types of messages, e.g., those related to initialization, method execution, informational messages, etc. To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT() statement.”h]”hŒõThe “debug_level†is a mask that selects different types of messages, e.g., those related to initialization, method execution, informational messages, etc. To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT() statement.”…””}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K:hjœh²hubhÞ)”}”(hŒ}The ACPI interpreter uses several different levels, but the Linux ACPI core and ACPI drivers generally only use ACPI_LV_INFO.”h]”hŒ}The ACPI interpreter uses several different levels, but the Linux ACPI core and ACPI drivers generally only use ACPI_LV_INFO.”…””}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K?hjœh²hubhÞ)”}”(hŒ¾You can set the debug_level mask at boot-time using the acpi.debug_level command line argument, and you can change it after boot by writing values to /sys/module/acpi/parameters/debug_level.”h]”hŒ¾You can set the debug_level mask at boot-time using the acpi.debug_level command line argument, and you can change it after boot by writing values to /sys/module/acpi/parameters/debug_level.”…””}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KBhjœh²hubhÞ)”}”(hŒŸThe possible levels are defined in include/acpi/acoutput.h. Reading /sys/module/acpi/parameters/debug_level shows the supported mask values, currently these::”h]”hŒžThe possible levels are defined in include/acpi/acoutput.h. Reading /sys/module/acpi/parameters/debug_level shows the supported mask values, currently these:”…””}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KFhjœh²hubj…)”}”(hX³ACPI_LV_INIT 0x00000001 ACPI_LV_DEBUG_OBJECT 0x00000002 ACPI_LV_INFO 0x00000004 ACPI_LV_INIT_NAMES 0x00000020 ACPI_LV_PARSE 0x00000040 ACPI_LV_LOAD 0x00000080 ACPI_LV_DISPATCH 0x00000100 ACPI_LV_EXEC 0x00000200 ACPI_LV_NAMES 0x00000400 ACPI_LV_OPREGION 0x00000800 ACPI_LV_BFIELD 0x00001000 ACPI_LV_TABLES 0x00002000 ACPI_LV_VALUES 0x00004000 ACPI_LV_OBJECTS 0x00008000 ACPI_LV_RESOURCES 0x00010000 ACPI_LV_USER_REQUESTS 0x00020000 ACPI_LV_PACKAGE 0x00040000 ACPI_LV_ALLOCATIONS 0x00100000 ACPI_LV_FUNCTIONS 0x00200000 ACPI_LV_OPTIMIZATIONS 0x00400000 ACPI_LV_MUTEX 0x01000000 ACPI_LV_THREADS 0x02000000 ACPI_LV_IO 0x04000000 ACPI_LV_INTERRUPTS 0x08000000 ACPI_LV_AML_DISASSEMBLE 0x10000000 ACPI_LV_VERBOSE_INFO 0x20000000 ACPI_LV_FULL_TABLES 0x40000000 ACPI_LV_EVENTS 0x80000000”h]”hX³ACPI_LV_INIT 0x00000001 ACPI_LV_DEBUG_OBJECT 0x00000002 ACPI_LV_INFO 0x00000004 ACPI_LV_INIT_NAMES 0x00000020 ACPI_LV_PARSE 0x00000040 ACPI_LV_LOAD 0x00000080 ACPI_LV_DISPATCH 0x00000100 ACPI_LV_EXEC 0x00000200 ACPI_LV_NAMES 0x00000400 ACPI_LV_OPREGION 0x00000800 ACPI_LV_BFIELD 0x00001000 ACPI_LV_TABLES 0x00002000 ACPI_LV_VALUES 0x00004000 ACPI_LV_OBJECTS 0x00008000 ACPI_LV_RESOURCES 0x00010000 ACPI_LV_USER_REQUESTS 0x00020000 ACPI_LV_PACKAGE 0x00040000 ACPI_LV_ALLOCATIONS 0x00100000 ACPI_LV_FUNCTIONS 0x00200000 ACPI_LV_OPTIMIZATIONS 0x00400000 ACPI_LV_MUTEX 0x01000000 ACPI_LV_THREADS 0x02000000 ACPI_LV_IO 0x04000000 ACPI_LV_INTERRUPTS 0x08000000 ACPI_LV_AML_DISASSEMBLE 0x10000000 ACPI_LV_VERBOSE_INFO 0x20000000 ACPI_LV_FULL_TABLES 0x40000000 ACPI_LV_EVENTS 0x80000000”…””}”hjåsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´KJhjœh²hubeh}”(h]”Œ debug-level”ah ]”h"]”Œ debug_level”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K8ubhÉ)”}”(hhh]”(hÎ)”}”(hŒExamples”h]”hŒExamples”…””}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjûh²hh³hÇh´KhubhÞ)”}”(hŒ;For example, drivers/acpi/acpica/evxfevnt.c contains this::”h]”hŒ:For example, drivers/acpi/acpica/evxfevnt.c contains this:”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kjhjûh²hubj…)”}”(hŒe#define _COMPONENT ACPI_EVENTS ... ACPI_DEBUG_PRINT((ACPI_DB_INIT, "ACPI mode disabled\n"));”h]”hŒe#define _COMPONENT ACPI_EVENTS ... ACPI_DEBUG_PRINT((ACPI_DB_INIT, "ACPI mode disabled\n"));”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´Klhjûh²hubhÞ)”}”(hŒÞTo turn on this message, set the ACPI_EVENTS bit in acpi.debug_layer and the ACPI_LV_INIT bit in acpi.debug_level. (The ACPI_DEBUG_PRINT statement uses ACPI_DB_INIT, which is a macro based on the ACPI_LV_INIT definition.)”h]”hŒÞTo turn on this message, set the ACPI_EVENTS bit in acpi.debug_layer and the ACPI_LV_INIT bit in acpi.debug_level. (The ACPI_DEBUG_PRINT statement uses ACPI_DB_INIT, which is a macro based on the ACPI_LV_INIT definition.)”…””}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphjûh²hubhÞ)”}”(hŒ_Enable all AML "Debug" output (stores to the Debug object while interpreting AML) during boot::”h]”hŒbEnable all AML “Debug†output (stores to the Debug object while interpreting AML) during boot:”…””}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kuhjûh²hubj…)”}”(hŒ0acpi.debug_layer=0xffffffff acpi.debug_level=0x2”h]”hŒ0acpi.debug_layer=0xffffffff acpi.debug_level=0x2”…””}”hjDsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´Kxhjûh²hubhÞ)”}”(hŒ+Enable all ACPI hardware-related messages::”h]”hŒ*Enable all ACPI hardware-related messages:”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kzhjûh²hubj…)”}”(hŒ0acpi.debug_layer=0x2 acpi.debug_level=0xffffffff”h]”hŒ0acpi.debug_layer=0x2 acpi.debug_level=0xffffffff”…””}”hj`sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´K|hjûh²hubhÞ)”}”(hŒ-Enable all ACPI_DB_INFO messages after boot::”h]”hŒ,Enable all ACPI_DB_INFO messages after boot:”…””}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K~hjûh²hubj…)”}”(hŒ4# echo 0x4 > /sys/module/acpi/parameters/debug_level”h]”hŒ4# echo 0x4 > /sys/module/acpi/parameters/debug_level”…””}”hj|sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´K€hjûh²hubhÞ)”}”(hŒ!Show all valid component values::”h]”hŒ Show all valid component values:”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hjûh²hubj…)”}”(hŒ-# cat /sys/module/acpi/parameters/debug_layer”h]”hŒ-# cat /sys/module/acpi/parameters/debug_layer”…””}”hj˜sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j„h³hÇh´K„hjûh²hubeh}”(h]”Œexamples”ah ]”h"]”Œexamples”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Khubeh}”(h]”Œacpi-ca-debug-output”ah ]”h"]”Œacpi ca debug output”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jÙŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j³j°jjj8j5j™j–jøjõj«j¨uŒ nametypes”}”(j³‰j‰j8‰j™‰jø‰j«‰uh}”(j°hÊjhíj5jj–j;jõjœj¨jûuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.