1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# ACPI Configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 6f5d707edSArnd Bergmannconfig ARCH_SUPPORTS_ACPI 7f5d707edSArnd Bergmann bool 8f5d707edSArnd Bergmann 93f2c48c9SJan Engelhardtmenuconfig ACPI 10355ee5ebSFrans Pop bool "ACPI (Advanced Configuration and Power Interface) Support" 112c870e61SArnd Bergmann depends on ARCH_SUPPORTS_ACPI 12*6ab3532bSRafael J. Wysocki select AUXILIARY_BUS 13243b66e7SLen Brown select PNP 142e61069bSSinan Kaya select NLS 1504662bacSRandy Dunlap select CRC32 16a103f466SDave Jiang select FIRMWARE_TABLE 172c870e61SArnd Bergmann default y if X86 181c48aa36SBjorn Helgaas help 191da177e4SLinus Torvalds Advanced Configuration and Power Interface (ACPI) support for 201c48aa36SBjorn Helgaas Linux requires an ACPI-compliant platform (hardware/firmware), 211da177e4SLinus Torvalds and assumes the presence of OS-directed configuration and power 221da177e4SLinus Torvalds management (OSPM) software. This option will enlarge your 231da177e4SLinus Torvalds kernel by about 70K. 241da177e4SLinus Torvalds 251da177e4SLinus Torvalds Linux ACPI provides a robust functional replacement for several 261da177e4SLinus Torvalds legacy configuration and power management interfaces, including 271da177e4SLinus Torvalds the Plug-and-Play BIOS specification (PnP BIOS), the 281da177e4SLinus Torvalds MultiProcessor Specification (MPS), and the Advanced Power 291da177e4SLinus Torvalds Management (APM) specification. If both ACPI and APM support 301c48aa36SBjorn Helgaas are configured, ACPI is used. 311da177e4SLinus Torvalds 321da177e4SLinus Torvalds Linux support for ACPI is based on Intel Corporation's ACPI 331c48aa36SBjorn Helgaas Component Architecture (ACPI CA). For more information on the 341c48aa36SBjorn Helgaas ACPI CA, see: 354ce77966SAlexander A. Klimov <https://acpica.org/> 361da177e4SLinus Torvalds 37c7f5220dSHanjun Guo ACPI is an open industry specification originally co-developed by 38c7f5220dSHanjun Guo Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently, 39c7f5220dSHanjun Guo it is developed by the ACPI Specification Working Group (ASWG) under 40c7f5220dSHanjun Guo the UEFI Forum and any UEFI member can join the ASWG and contribute 41c7f5220dSHanjun Guo to the ACPI specification. 421c48aa36SBjorn Helgaas The specification is available at: 430585c1c0STiezhu Yang <https://uefi.org/specifications> 441da177e4SLinus Torvalds 453e11c3ceSLen Brownif ACPI 463e11c3ceSLen Brown 478a1664beSGraeme Gregoryconfig ACPI_LEGACY_TABLES_LOOKUP 488a1664beSGraeme Gregory bool 498a1664beSGraeme Gregory 5046ba51eaSHanjun Guoconfig ARCH_MIGHT_HAVE_ACPI_PDC 5146ba51eaSHanjun Guo bool 5246ba51eaSHanjun Guo 53d8f4f161SLorenzo Pieralisiconfig ACPI_GENERIC_GSI 54d8f4f161SLorenzo Pieralisi bool 55d8f4f161SLorenzo Pieralisi 566e0a0ea1SGraeme Gregoryconfig ACPI_SYSTEM_POWER_STATES_SUPPORT 576e0a0ea1SGraeme Gregory bool 586e0a0ea1SGraeme Gregory 59d0562674SSuthikulpanit, Suraveeconfig ACPI_CCA_REQUIRED 60d0562674SSuthikulpanit, Suravee bool 61d0562674SSuthikulpanit, Suravee 62f64bd790SDan Williamsconfig ACPI_TABLE_LIB 63f64bd790SDan Williams bool 64f64bd790SDan Williams 65f4750798SRafael J. Wysockiconfig ACPI_THERMAL_LIB 66f4750798SRafael J. Wysocki depends on THERMAL 67f4750798SRafael J. Wysocki bool 68f4750798SRafael J. Wysocki 694d946f79SLv Zhengconfig ACPI_DEBUGGER 708cfb0cdfSLv Zheng bool "AML debugger interface" 714d946f79SLv Zheng select ACPI_DEBUG 724d946f79SLv Zheng help 73836d0830SLv Zheng Enable in-kernel debugging of AML facilities: statistics, 74836d0830SLv Zheng internal object dump, single step control method execution. 754d946f79SLv Zheng This is still under development, currently enabling this only 764d946f79SLv Zheng results in the compilation of the ACPICA debugger files. 774d946f79SLv Zheng 78836d0830SLv Zhengif ACPI_DEBUGGER 79836d0830SLv Zheng 80836d0830SLv Zhengconfig ACPI_DEBUGGER_USER 81c117dfffSMasanari Iida tristate "Userspace debugger accessibility" 82836d0830SLv Zheng depends on DEBUG_FS 83836d0830SLv Zheng help 84836d0830SLv Zheng Export /sys/kernel/debug/acpi/acpidbg for userspace utilities 85836d0830SLv Zheng to access the debugger functionalities. 86836d0830SLv Zheng 87836d0830SLv Zhengendif 88836d0830SLv Zheng 89ad1696f6SAleksey Makarovconfig ACPI_SPCR_TABLE 900231d000SPrarit Bhargava bool "ACPI Serial Port Console Redirection Support" 910231d000SPrarit Bhargava default y if X86 920231d000SPrarit Bhargava help 930231d000SPrarit Bhargava Enable support for Serial Port Console Redirection (SPCR) Table. 940231d000SPrarit Bhargava This table provides information about the configuration of the 950231d000SPrarit Bhargava earlycon console. 96ad1696f6SAleksey Makarov 97d1eb86e5SZhang Ruiconfig ACPI_FPDT 98d1eb86e5SZhang Rui bool "ACPI Firmware Performance Data Table (FPDT) support" 99c2465f95SJeremy Linton depends on X86_64 || ARM64 100d1eb86e5SZhang Rui help 101d1eb86e5SZhang Rui Enable support for the Firmware Performance Data Table (FPDT). 102d1eb86e5SZhang Rui This table provides information on the timing of the system 103d1eb86e5SZhang Rui boot, S3 suspend and S3 resume firmware code paths. 104d1eb86e5SZhang Rui 105eeb2d80dSSrinivas Pandruvadaconfig ACPI_LPIT 106eeb2d80dSSrinivas Pandruvada bool 107eeb2d80dSSrinivas Pandruvada depends on X86_64 108eeb2d80dSSrinivas Pandruvada default y 109eeb2d80dSSrinivas Pandruvada 110673d5b43SLen Brownconfig ACPI_SLEEP 111673d5b43SLen Brown bool 1125d1e072bSRafael J. Wysocki depends on SUSPEND || HIBERNATION 1136e0a0ea1SGraeme Gregory depends on ACPI_SYSTEM_POWER_STATES_SUPPORT 114673d5b43SLen Brown default y 115673d5b43SLen Brown 11618d78b64SRafael J. Wysockiconfig ACPI_REV_OVERRIDE_POSSIBLE 1179165dabbSMasanari Iida bool "Allow supported ACPI revision to be overridden" 11818d78b64SRafael J. Wysocki depends on X86 11918d78b64SRafael J. Wysocki default y 12018d78b64SRafael J. Wysocki help 12118d78b64SRafael J. Wysocki The platform firmware on some systems expects Linux to return "5" as 12218d78b64SRafael J. Wysocki the supported ACPI revision which makes it expose system configuration 12318d78b64SRafael J. Wysocki information in a special way. 12418d78b64SRafael J. Wysocki 12518d78b64SRafael J. Wysocki For example, based on what ACPI exports as the supported revision, 12618d78b64SRafael J. Wysocki Dell XPS 13 (2015) configures its audio device to either work in HDA 12718d78b64SRafael J. Wysocki mode or in I2S mode, where the former is supposed to be used on Linux 12818d78b64SRafael J. Wysocki until the latter is fully supported (in the kernel as well as in user 12918d78b64SRafael J. Wysocki space). 13018d78b64SRafael J. Wysocki 13118d78b64SRafael J. Wysocki This option enables a DMI-based quirk for the above Dell machine (so 13218d78b64SRafael J. Wysocki that HDA audio is exposed by the platform firmware to the kernel) and 13318d78b64SRafael J. Wysocki makes it possible to force the kernel to return "5" as the supported 13418d78b64SRafael J. Wysocki ACPI revision via the "acpi_rev_override" command line switch. 13518d78b64SRafael J. Wysocki 136a6021aa2SArnd Bergmannconfig ACPI_EC 137a6021aa2SArnd Bergmann bool "Embedded Controller" 138a6021aa2SArnd Bergmann depends on HAS_IOPORT 1390674188fSHuacai Chen default X86 || LOONGARCH 140a6021aa2SArnd Bergmann help 141a6021aa2SArnd Bergmann This driver handles communication with the microcontroller 1420674188fSHuacai Chen on many x86/LoongArch laptops and other machines. 143a6021aa2SArnd Bergmann 1441195a098SThomas Renningerconfig ACPI_EC_DEBUGFS 1451195a098SThomas Renninger tristate "EC read/write access through /sys/kernel/debug/ec" 146a6021aa2SArnd Bergmann depends on ACPI_EC 1471195a098SThomas Renninger help 1481195a098SThomas Renninger Say N to disable Embedded Controller /sys/kernel/debug interface 1491195a098SThomas Renninger 150500de3ddSThomas Renninger Be aware that using this interface can confuse your Embedded 151500de3ddSThomas Renninger Controller in a way that a normal reboot is not enough. You then 15225cb1bfdSAndrea Gelmini have to power off your system, and remove the laptop battery for 153500de3ddSThomas Renninger some seconds. 1541195a098SThomas Renninger An Embedded Controller typically is available on laptops and reads 1551195a098SThomas Renninger sensor values like battery state and temperature. 156500de3ddSThomas Renninger The kernel accesses the EC through ACPI parsed code provided by BIOS 157500de3ddSThomas Renninger tables. This option allows to access the EC directly without ACPI 158500de3ddSThomas Renninger code being involved. 1591195a098SThomas Renninger Thus this option is a debug option that helps to write ACPI drivers 1601195a098SThomas Renninger and can be used to identify ACPI code or EC firmware bugs. 1611195a098SThomas Renninger 1621da177e4SLinus Torvaldsconfig ACPI_AC 1631da177e4SLinus Torvalds tristate "AC Adapter" 1641b3d4c3bSZhang Rui select POWER_SUPPLY 16507fefe4cSLen Brown default y 1661da177e4SLinus Torvalds help 1671c48aa36SBjorn Helgaas This driver supports the AC Adapter object, which indicates 1681c48aa36SBjorn Helgaas whether a system is on AC or not. If you have a system that can 16907fefe4cSLen Brown switch between A/C and battery, say Y. 1701da177e4SLinus Torvalds 1711c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 1721c48aa36SBjorn Helgaas the module will be called ac. 1731c48aa36SBjorn Helgaas 1741da177e4SLinus Torvaldsconfig ACPI_BATTERY 1751da177e4SLinus Torvalds tristate "Battery" 1761b3d4c3bSZhang Rui select POWER_SUPPLY 17707fefe4cSLen Brown default y 1781da177e4SLinus Torvalds help 1791da177e4SLinus Torvalds This driver adds support for battery information through 1801da177e4SLinus Torvalds /proc/acpi/battery. If you have a mobile system with a battery, 1811da177e4SLinus Torvalds say Y. 1821da177e4SLinus Torvalds 1831c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 1841c48aa36SBjorn Helgaas the module will be called battery. 1851c48aa36SBjorn Helgaas 1861da177e4SLinus Torvaldsconfig ACPI_BUTTON 1871da177e4SLinus Torvalds tristate "Button" 188c0968f0eSDmitry Torokhov depends on INPUT 18907fefe4cSLen Brown default y 1901da177e4SLinus Torvalds help 1911c48aa36SBjorn Helgaas This driver handles events on the power, sleep, and lid buttons. 1927d13f94cSKrzysztof Mazur A daemon reads events from input devices or via netlink and 1937d13f94cSKrzysztof Mazur performs user-defined actions such as shutting down the system. 1947d13f94cSKrzysztof Mazur This is necessary for software-controlled poweroff. 1951c48aa36SBjorn Helgaas 1961c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 1971c48aa36SBjorn Helgaas the module will be called button. 1981da177e4SLinus Torvalds 199a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON 200a1b93e89SJosh Triplett tristate "Tiny Power Button Driver" 201a1b93e89SJosh Triplett depends on !ACPI_BUTTON 202a1b93e89SJosh Triplett help 203a1b93e89SJosh Triplett This driver provides a tiny alternative to the ACPI Button driver. 204a1b93e89SJosh Triplett The tiny power button driver only handles the power button. Rather 205a1b93e89SJosh Triplett than notifying userspace via the input layer or a netlink event, this 206a1b93e89SJosh Triplett driver directly signals the init process to shut down. 207a1b93e89SJosh Triplett 208a1b93e89SJosh Triplett This driver is particularly suitable for cloud and VM environments, 209a1b93e89SJosh Triplett which use a simulated power button to initiate a controlled poweroff, 210a1b93e89SJosh Triplett but which may not want to run a separate userspace daemon to process 211a1b93e89SJosh Triplett input events. 212a1b93e89SJosh Triplett 213a1b93e89SJosh Triplettconfig ACPI_TINY_POWER_BUTTON_SIGNAL 214a1b93e89SJosh Triplett int "Tiny Power Button Signal" 215a1b93e89SJosh Triplett depends on ACPI_TINY_POWER_BUTTON 216a1b93e89SJosh Triplett default 38 217a1b93e89SJosh Triplett help 218a1b93e89SJosh Triplett Default signal to send to init in response to the power button. 219a1b93e89SJosh Triplett 220a1b93e89SJosh Triplett Likely values here include 38 (SIGRTMIN+4) to power off, or 2 221a1b93e89SJosh Triplett (SIGINT) to simulate Ctrl+Alt+Del. 222a1b93e89SJosh Triplett 2231da177e4SLinus Torvaldsconfig ACPI_VIDEO 2241da177e4SLinus Torvalds tristate "Video" 225038275d2SRiwen Lu depends on BACKLIGHT_CLASS_DEVICE 22603e2bf26SAndreas Herrmann depends on INPUT 227fe7aebb4SHans de Goede depends on ACPI_WMI || !X86 22863c4ec90SZhang Rui select THERMAL 2291da177e4SLinus Torvalds help 2301c48aa36SBjorn Helgaas This driver implements the ACPI Extensions For Display Adapters 2311da177e4SLinus Torvalds for integrated graphics devices on motherboard, as specified in 2321c48aa36SBjorn Helgaas ACPI 2.0 Specification, Appendix B. This supports basic operations 2331c48aa36SBjorn Helgaas such as defining the video POST device, retrieving EDID information, 2341c48aa36SBjorn Helgaas and setting up a video output. 2351c48aa36SBjorn Helgaas 2361c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 2371c48aa36SBjorn Helgaas the module will be called video. 2381da177e4SLinus Torvalds 2391da177e4SLinus Torvaldsconfig ACPI_FAN 2401da177e4SLinus Torvalds tristate "Fan" 241d8054749SZhang Rui depends on THERMAL 24207fefe4cSLen Brown default y 2431da177e4SLinus Torvalds help 2441c48aa36SBjorn Helgaas This driver supports ACPI fan devices, allowing user-mode 2451da177e4SLinus Torvalds applications to perform basic fan control (on, off, status). 2461da177e4SLinus Torvalds 2471c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 2481c48aa36SBjorn Helgaas the module will be called fan. 2491c48aa36SBjorn Helgaas 25095c513ecSRafael J. Wysockiconfig ACPI_TAD 25195c513ecSRafael J. Wysocki tristate "ACPI Time and Alarm (TAD) Device Support" 25295c513ecSRafael J. Wysocki depends on SYSFS && PM_SLEEP 25395c513ecSRafael J. Wysocki help 25495c513ecSRafael J. Wysocki The ACPI Time and Alarm (TAD) device is an alternative to the Real 25595c513ecSRafael J. Wysocki Time Clock (RTC). Its wake timers allow the system to transition from 25695c513ecSRafael J. Wysocki the S3 (or optionally S4/S5) state to S0 state after a time period 25795c513ecSRafael J. Wysocki elapses. In comparison with the RTC Alarm, the TAD provides a larger 25895c513ecSRafael J. Wysocki scale of flexibility in the wake timers. The time capabilities of the 25995c513ecSRafael J. Wysocki TAD maintain the time of day information across platform power 26095c513ecSRafael J. Wysocki transitions, and keep track of time even when the platform is turned 26195c513ecSRafael J. Wysocki off. 26295c513ecSRafael J. Wysocki 263c8f7a62cSLen Brownconfig ACPI_DOCK 264898b054fSShaohua Li bool "Dock" 265c8f7a62cSLen Brown help 2661c48aa36SBjorn Helgaas This driver supports ACPI-controlled docking stations and removable 2671c48aa36SBjorn Helgaas drive bays such as the IBM Ultrabay and the Dell Module Bay. 26801b57e73SKristen Carlson Accardi 269239708a3SAshwin Chauguleconfig ACPI_CPU_FREQ_PSS 270239708a3SAshwin Chaugule bool 271239708a3SAshwin Chaugule 27235ae7133SSudeep Hollaconfig ACPI_PROCESSOR_CSTATE 27335ae7133SSudeep Holla def_bool y 274239ed06dSRafael J. Wysocki depends on ACPI_PROCESSOR 275cf8e8658SArd Biesheuvel depends on X86 27635ae7133SSudeep Holla 2775f05586cSAshwin Chauguleconfig ACPI_PROCESSOR_IDLE 2785f05586cSAshwin Chaugule bool 2795f05586cSAshwin Chaugule select CPU_IDLE 2805f05586cSAshwin Chaugule 281935c760eSTomasz Nowickiconfig ACPI_MCFG 282935c760eSTomasz Nowicki bool 283935c760eSTomasz Nowicki 284337aadffSAshwin Chauguleconfig ACPI_CPPC_LIB 285337aadffSAshwin Chaugule bool 286337aadffSAshwin Chaugule depends on ACPI_PROCESSOR 287337aadffSAshwin Chaugule select MAILBOX 288337aadffSAshwin Chaugule select PCC 289337aadffSAshwin Chaugule help 290337aadffSAshwin Chaugule If this option is enabled, this file implements common functionality 291337aadffSAshwin Chaugule to parse CPPC tables as described in the ACPI 5.1+ spec. The 292337aadffSAshwin Chaugule routines implemented are meant to be used by other 293337aadffSAshwin Chaugule drivers to control CPU performance using CPPC semantics. 294337aadffSAshwin Chaugule If your platform does not support CPPC in firmware, 295337aadffSAshwin Chaugule leave this option disabled. 296337aadffSAshwin Chaugule 2971da177e4SLinus Torvaldsconfig ACPI_PROCESSOR 2981da177e4SLinus Torvalds tristate "Processor" 299359df7c5SSunil V L depends on X86 || ARM64 || LOONGARCH || RISCV 3008fc85c6aSSudeep Holla select ACPI_PROCESSOR_IDLE 301cf8e8658SArd Biesheuvel select ACPI_CPU_FREQ_PSS if X86 || LOONGARCH 3027fdc74daSRiwen Lu select THERMAL 30307fefe4cSLen Brown default y 3041da177e4SLinus Torvalds help 305239708a3SAshwin Chaugule This driver adds support for the ACPI Processor package. It is required 306239708a3SAshwin Chaugule by several flavors of cpufreq performance-state, thermal, throttling and 307239708a3SAshwin Chaugule idle drivers. 3081c48aa36SBjorn Helgaas 3091c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 3101c48aa36SBjorn Helgaas the module will be called processor. 3114b88e330SLv Zheng 312e92b297cSZhao Yakuiconfig ACPI_IPMI 313e92b297cSZhao Yakui tristate "IPMI" 31450121bebSSinan Kaya depends on IPMI_HANDLER 315e92b297cSZhao Yakui help 316e92b297cSZhao Yakui This driver enables the ACPI to access the BMC controller. And it 317e92b297cSZhao Yakui uses the IPMI request/response message to communicate with BMC 318a8ab8ef4STom Rix controller, which can be found on the server. 319e92b297cSZhao Yakui 320e92b297cSZhao Yakui To compile this driver as a module, choose M here: 321e92b297cSZhao Yakui the module will be called as acpi_ipmi. 3221da177e4SLinus Torvalds 3231da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_CPU 324cbfc1baeSAdrian Bunk bool 325f756f28bSKees Cook depends on ACPI_PROCESSOR && HOTPLUG_CPU 3261da177e4SLinus Torvalds select ACPI_CONTAINER 3271da177e4SLinus Torvalds 3288e0af514SShaohua Liconfig ACPI_PROCESSOR_AGGREGATOR 3298e0af514SShaohua Li tristate "Processor Aggregator" 3308e0af514SShaohua Li depends on ACPI_PROCESSOR 331d91f79ebSLen Brown depends on X86 3328e0af514SShaohua Li help 3338e0af514SShaohua Li ACPI 4.0 defines processor Aggregator, which enables OS to perform 334c4c4e2a5SJiri Slaby specific processor configuration and control that applies to all 3358e0af514SShaohua Li processors in the platform. Currently only logical processor idling 3368e0af514SShaohua Li is defined, which is to reduce power consumption. This driver 337c4c4e2a5SJiri Slaby supports the new device. 3388e0af514SShaohua Li 3391da177e4SLinus Torvaldsconfig ACPI_THERMAL 3401da177e4SLinus Torvalds tristate "Thermal Zone" 3411da177e4SLinus Torvalds depends on ACPI_PROCESSOR 3423f655ef8SZhang Rui select THERMAL 343f4750798SRafael J. Wysocki select ACPI_THERMAL_LIB 34407fefe4cSLen Brown default y 3451da177e4SLinus Torvalds help 3461c48aa36SBjorn Helgaas This driver supports ACPI thermal zones. Most mobile and 3471da177e4SLinus Torvalds some desktop systems support ACPI thermal zones. It is HIGHLY 3481da177e4SLinus Torvalds recommended that this option be enabled, as your processor(s) 3491da177e4SLinus Torvalds may be damaged without it. 3501da177e4SLinus Torvalds 3511c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 3521c48aa36SBjorn Helgaas the module will be called thermal. 3531c48aa36SBjorn Helgaas 354a2ff95e0SMark Pearsonconfig ACPI_PLATFORM_PROFILE 35521f05a43SMaximilian Luz tristate 356a2ff95e0SMark Pearson 3577ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT_FILE 3587ce9573eSRandy Dunlap string "Custom DSDT Table file to include" 3597ce9573eSRandy Dunlap default "" 3601da177e4SLinus Torvalds depends on !STANDALONE 3611da177e4SLinus Torvalds help 362d89e9d6bSLen Brown This option supports a custom DSDT by linking it into the kernel. 363d89e9d6bSLen Brown 364c30fe7f7SUwe Zeisberger Enter the full path name to the file which includes the AmlCode 36582e4eb4eSWang Dongsheng or dsdt_aml_code declaration. 3661da177e4SLinus Torvalds 3677ce9573eSRandy Dunlap If unsure, don't enter a file name. 3687ce9573eSRandy Dunlap 3697ce9573eSRandy Dunlapconfig ACPI_CUSTOM_DSDT 3707ce9573eSRandy Dunlap bool 3717ce9573eSRandy Dunlap default ACPI_CUSTOM_DSDT_FILE != "" 3727ce9573eSRandy Dunlap 37391dda51aSAleksey Makarovconfig ARCH_HAS_ACPI_TABLE_UPGRADE 37491dda51aSAleksey Makarov def_bool n 37591dda51aSAleksey Makarov 3765d881327SLv Zhengconfig ACPI_TABLE_UPGRADE 3775d881327SLv Zheng bool "Allow upgrading ACPI tables via initrd" 37891dda51aSAleksey Makarov depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE 3795d881327SLv Zheng default y 38053aac44cSThomas Renninger help 3815d881327SLv Zheng This option provides functionality to upgrade arbitrary ACPI tables 38253aac44cSThomas Renninger via initrd. No functional change if no ACPI tables are passed via 38353aac44cSThomas Renninger initrd, therefore it's safe to say Y. 384cb1aaebeSMauro Carvalho Chehab See Documentation/admin-guide/acpi/initrd_table_override.rst for details 38553aac44cSThomas Renninger 38698a455d9SShunyong Yangconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD 38798a455d9SShunyong Yang bool "Override ACPI tables from built-in initrd" 38898a455d9SShunyong Yang depends on ACPI_TABLE_UPGRADE 389d2cbbf1fSRobert Richter depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE 39098a455d9SShunyong Yang help 39198a455d9SShunyong Yang This option provides functionality to override arbitrary ACPI tables 39298a455d9SShunyong Yang from built-in uncompressed initrd. 39398a455d9SShunyong Yang 394cb1aaebeSMauro Carvalho Chehab See Documentation/admin-guide/acpi/initrd_table_override.rst for details 39598a455d9SShunyong Yang 3961da177e4SLinus Torvaldsconfig ACPI_DEBUG 3971da177e4SLinus Torvalds bool "Debug Statements" 398814eca10SMario Limonciello default y 3991da177e4SLinus Torvalds help 400a0d84a92SBjorn Helgaas The ACPI subsystem can produce debug output. Saying Y enables this 401a0d84a92SBjorn Helgaas output and increases the kernel size by around 50K. 402a0d84a92SBjorn Helgaas 403a0d84a92SBjorn Helgaas Use the acpi.debug_layer and acpi.debug_level kernel command-line 404cb1aaebeSMauro Carvalho Chehab parameters documented in Documentation/firmware-guide/acpi/debug.rst and 4058c27ceffSMauro Carvalho Chehab Documentation/admin-guide/kernel-parameters.rst to control the type and 406a0d84a92SBjorn Helgaas amount of debug output. 4071da177e4SLinus Torvalds 4088344b568SAlex Chiangconfig ACPI_PCI_SLOT 409ab1a2e03SJiang Liu bool "PCI slot detection driver" 4105c6a1177SSinan Kaya depends on SYSFS && PCI 4118344b568SAlex Chiang help 4121c48aa36SBjorn Helgaas This driver creates entries in /sys/bus/pci/slots/ for all PCI 4131c48aa36SBjorn Helgaas slots in the system. This can help correlate PCI bus addresses, 4141c48aa36SBjorn Helgaas i.e., segment/bus/device/function tuples, with physical slots in 4151c48aa36SBjorn Helgaas the system. If you are unsure, say N. 4161c48aa36SBjorn Helgaas 4171da177e4SLinus Torvaldsconfig ACPI_CONTAINER 41806991c28SLinus Torvalds bool "Container and Module Devices" 419ea6a4581SPaul Bolle default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU) 4201c48aa36SBjorn Helgaas help 4211c48aa36SBjorn Helgaas This driver supports ACPI Container and Module devices (IDs 4221c48aa36SBjorn Helgaas ACPI0004, PNP0A05, and PNP0A06). 42345b1b196SKeiichiro Tokunaga 4241c48aa36SBjorn Helgaas This helps support hotplug of nodes, CPUs, and memory. 4251c48aa36SBjorn Helgaas 4261da177e4SLinus Torvaldsconfig ACPI_HOTPLUG_MEMORY 4270a347644SRafael J. Wysocki bool "Memory Hotplug" 428bc02af93SYasunori Goto depends on MEMORY_HOTPLUG 4291da177e4SLinus Torvalds help 4301c48aa36SBjorn Helgaas This driver supports ACPI memory hotplug. The driver 4311c48aa36SBjorn Helgaas fields notifications on ACPI memory devices (PNP0C80), 4321c48aa36SBjorn Helgaas which represent memory ranges that may be onlined or 4331c48aa36SBjorn Helgaas offlined during runtime. 4341da177e4SLinus Torvalds 4351c48aa36SBjorn Helgaas If your hardware and firmware do not support adding or 4361c48aa36SBjorn Helgaas removing memory devices at runtime, you need not enable 4371c48aa36SBjorn Helgaas this driver. 4381da177e4SLinus Torvalds 439c183619bSJiang Liuconfig ACPI_HOTPLUG_IOAPIC 440c183619bSJiang Liu bool 441c183619bSJiang Liu depends on PCI 442c183619bSJiang Liu depends on X86_IO_APIC 443c183619bSJiang Liu default y 444c183619bSJiang Liu 4453f86b832SRich Townsendconfig ACPI_SBS 44694f6c086SAlexey Starikovskiy tristate "Smart Battery System" 447a6021aa2SArnd Bergmann depends on X86 && ACPI_EC 4481b3d4c3bSZhang Rui select POWER_SUPPLY 4493f86b832SRich Townsend help 4501c48aa36SBjorn Helgaas This driver supports the Smart Battery System, another 45194f6c086SAlexey Starikovskiy type of access to battery information, found on some laptops. 4523f86b832SRich Townsend 4531c48aa36SBjorn Helgaas To compile this driver as a module, choose M here: 4541c48aa36SBjorn Helgaas the modules will be called sbs and sbshc. 4551c48aa36SBjorn Helgaas 456801eab81SHuang Yingconfig ACPI_HED 457cccf6ee0SXiaofei Tan bool "Hardware Error Device" 458801eab81SHuang Ying help 459801eab81SHuang Ying This driver supports the Hardware Error Device (PNP0C33), 460801eab81SHuang Ying which is used to report some hardware errors notified via 461801eab81SHuang Ying SCI, mainly the corrected errors. 462801eab81SHuang Ying 463d1ff4b1cSMatthew Garrettconfig ACPI_BGRT 4642223af38SJosh Triplett bool "Boottime Graphics Resource Table support" 46521c3896bSHeinrich Schuchardt depends on EFI 466d1ff4b1cSMatthew Garrett help 467d1ff4b1cSMatthew Garrett This driver adds support for exposing the ACPI Boottime Graphics 468d1ff4b1cSMatthew Garrett Resource Table, which allows the operating system to obtain 469d1ff4b1cSMatthew Garrett data from the firmware boot splash. It will appear under 470d1ff4b1cSMatthew Garrett /sys/firmware/acpi/bgrt/ . 471d1ff4b1cSMatthew Garrett 472af1ae78aSAl Stoneconfig ACPI_REDUCED_HARDWARE_ONLY 473af1ae78aSAl Stone bool "Hardware-reduced ACPI support only" if EXPERT 474af1ae78aSAl Stone help 475af1ae78aSAl Stone This config item changes the way the ACPI code is built. When this 476af1ae78aSAl Stone option is selected, the kernel will use a specialized version of 477af1ae78aSAl Stone ACPICA that ONLY supports the ACPI "reduced hardware" mode. The 478af1ae78aSAl Stone resulting kernel will be smaller but it will also be restricted to 479af1ae78aSAl Stone running in ACPI reduced hardware mode ONLY. 480af1ae78aSAl Stone 481af1ae78aSAl Stone If you are unsure what to do, do not enable this option. 482af1ae78aSAl Stone 48382b8acc0SCezary Rojewskiconfig ACPI_NHLT 48482b8acc0SCezary Rojewski bool 48582b8acc0SCezary Rojewski 486bdf97013SDan Williamssource "drivers/acpi/nfit/Kconfig" 487c710fcc5SDan Williamssource "drivers/acpi/numa/Kconfig" 488a643ce20SHuang Yingsource "drivers/acpi/apei/Kconfig" 4896256ebd5SSrinivas Pandruvadasource "drivers/acpi/dptf/Kconfig" 490a643ce20SHuang Ying 491058dfc76SMika Westerbergconfig ACPI_WATCHDOG 492058dfc76SMika Westerberg bool 493058dfc76SMika Westerberg 4944b3db708SChen, Gongconfig ACPI_EXTLOG 4954b3db708SChen, Gong tristate "Extended Error Log support" 4969613916bSBorislav Petkov depends on X86_MCE && X86_LOCAL_APIC && EDAC 4977ea6c6c1SLuck, Tony select UEFI_CPER 49895350effSFabio M. De Francesco select ACPI_APEI 49995350effSFabio M. De Francesco select ACPI_APEI_GHES 5004b3db708SChen, Gong help 5014b3db708SChen, Gong Certain usages such as Predictive Failure Analysis (PFA) require 5024b3db708SChen, Gong more information about the error than what can be described in 5034b3db708SChen, Gong processor machine check banks. Most server processors log 5044b3db708SChen, Gong additional information about the error in processor uncore 5054b3db708SChen, Gong registers. Since the addresses and layout of these registers vary 5064b3db708SChen, Gong widely from one processor to another, system software cannot 5074b3db708SChen, Gong readily make use of them. To complicate matters further, some of 5084b3db708SChen, Gong the additional error information cannot be constructed without 5094b3db708SChen, Gong detailed knowledge about platform topology. 5104b3db708SChen, Gong 5114b3db708SChen, Gong Enhanced MCA Logging allows firmware to provide additional error 5124b3db708SChen, Gong information to system software, synchronous with MCE or CMCI. This 5132dfb7d51SChen, Gong driver adds support for that functionality with corresponding 5142dfb7d51SChen, Gong tracepoint which carries that information to userspace. 5154b3db708SChen, Gong 5164cf841e3STony Luckconfig ACPI_ADXL 5174cf841e3STony Luck bool 5184cf841e3STony Luck 5190bf54fcdSOctavian Purdilaconfig ACPI_CONFIGFS 5200bf54fcdSOctavian Purdila tristate "ACPI configfs support" 5210bf54fcdSOctavian Purdila select CONFIGFS_FS 5220bf54fcdSOctavian Purdila help 5230bf54fcdSOctavian Purdila Select this option to enable support for ACPI configuration from 5240bf54fcdSOctavian Purdila userspace. The configurable ACPI groups will be visible under 5250bf54fcdSOctavian Purdila /config/acpi, assuming configfs is mounted under /config. 5260bf54fcdSOctavian Purdila 5270db89fa2SChen Yuconfig ACPI_PFRUT 5280db89fa2SChen Yu tristate "ACPI Platform Firmware Runtime Update and Telemetry" 5290db89fa2SChen Yu depends on 64BIT 5300db89fa2SChen Yu help 5310db89fa2SChen Yu This mechanism allows certain pieces of the platform firmware 5320db89fa2SChen Yu to be updated on the fly while the system is running (runtime) 5330db89fa2SChen Yu without the need to restart it, which is key in the cases when 5340db89fa2SChen Yu the system needs to be available 100% of the time and it cannot 5350db89fa2SChen Yu afford the downtime related to restarting it, or when the work 5360db89fa2SChen Yu carried out by the system is particularly important, so it cannot 5370db89fa2SChen Yu be interrupted, and it is not practical to wait until it is complete. 5380db89fa2SChen Yu 5390db89fa2SChen Yu The existing firmware code can be modified (driver update) or 5400db89fa2SChen Yu extended by adding new code to the firmware (code injection). 5410db89fa2SChen Yu 542b0013e03SChen Yu Besides, the telemetry driver allows user space to fetch telemetry 543b0013e03SChen Yu data from the firmware with the help of the Platform Firmware Runtime 544b0013e03SChen Yu Telemetry interface. 545b0013e03SChen Yu 546b0013e03SChen Yu To compile the drivers as modules, choose M here: 547b0013e03SChen Yu the modules will be called pfr_update and pfr_telemetry. 5480db89fa2SChen Yu 54988ef16d8STomasz Nowickiif ARM64 55088ef16d8STomasz Nowickisource "drivers/acpi/arm64/Kconfig" 551f6f0c9a7SHuacai Chenendif 5520ce82232SJeremy Linton 5538f772955SSunil V Lif RISCV 5548f772955SSunil V Lsource "drivers/acpi/riscv/Kconfig" 5558f772955SSunil V Lendif 5568f772955SSunil V L 5570ce82232SJeremy Lintonconfig ACPI_PPTT 5580ce82232SJeremy Linton bool 55988ef16d8STomasz Nowicki 56077e2a047SSudeep Hollaconfig ACPI_PCC 56177e2a047SSudeep Holla bool "ACPI PCC Address Space" 56277e2a047SSudeep Holla depends on PCC 56377e2a047SSudeep Holla default y 56477e2a047SSudeep Holla help 56577e2a047SSudeep Holla The PCC Address Space also referred as PCC Operation Region pertains 56677e2a047SSudeep Holla to the region of PCC subspace that succeeds the PCC signature. 56777e2a047SSudeep Holla 56877e2a047SSudeep Holla The PCC Operation Region works in conjunction with the PCC Table 56977e2a047SSudeep Holla (Platform Communications Channel Table). PCC subspaces that are 57077e2a047SSudeep Holla marked for use as PCC Operation Regions must not be used as PCC 57177e2a047SSudeep Holla subspaces for the standard ACPI features such as CPPC, RASF, PDTT and 57277e2a047SSudeep Holla MPST. These standard features must always use the PCC Table instead. 57377e2a047SSudeep Holla 57477e2a047SSudeep Holla Enable this feature if you want to set up and install the PCC Address 57577e2a047SSudeep Holla Space handler to handle PCC OpRegion in the firmware. 57677e2a047SSudeep Holla 577e81c782cSSudeep Hollaconfig ACPI_FFH 578e81c782cSSudeep Holla bool "ACPI FFH Address Space" 579e81c782cSSudeep Holla default n 580e81c782cSSudeep Holla help 581e81c782cSSudeep Holla The FFH(Fixed Function Hardware) Address Space also referred as FFH 582e81c782cSSudeep Holla Operation Region allows to define platform specific opregion. 583e81c782cSSudeep Holla 584e81c782cSSudeep Holla Enable this feature if you want to set up and install the FFH Address 585e81c782cSSudeep Holla Space handler to handle FFH OpRegion in the firmware. 586e81c782cSSudeep Holla 587b9020bdbSTony Luckconfig ACPI_MRRM 588b9020bdbSTony Luck bool 589b9020bdbSTony Luck 590fa870509SAndy Shevchenkosource "drivers/acpi/pmic/Kconfig" 591fa870509SAndy Shevchenko 5923cf48554SJean-Philippe Bruckerconfig ACPI_VIOT 5933cf48554SJean-Philippe Brucker bool 5943cf48554SJean-Philippe Brucker 595e3435fffSSudeep Hollaconfig ACPI_PRMT 596e3435fffSSudeep Holla bool "Platform Runtime Mechanism Support" 5975894cf57SArd Biesheuvel depends on EFI_RUNTIME_WRAPPERS && (X86_64 || ARM64) 598e3435fffSSudeep Holla default y 599e3435fffSSudeep Holla help 600e3435fffSSudeep Holla Platform Runtime Mechanism (PRM) is a firmware interface exposing a 601e3435fffSSudeep Holla set of binary executables that can be called from the AML interpreter 602e3435fffSSudeep Holla or directly from device drivers. 603e3435fffSSudeep Holla 604e3435fffSSudeep Holla Say Y to enable the AML interpreter to execute the PRM code. 605e3435fffSSudeep Holla 606e3435fffSSudeep Holla While this feature is optional in principle, leaving it out may 607e3435fffSSudeep Holla substantially increase computational overhead related to the 608e3435fffSSudeep Holla initialization of some server systems. 609e3435fffSSudeep Holla 6101da177e4SLinus Torvaldsendif # ACPI 61187e65d05SJan Kiszka 61287e65d05SJan Kiszkaconfig X86_PM_TIMER 61387e65d05SJan Kiszka bool "Power Management Timer Support" if EXPERT 61487e65d05SJan Kiszka depends on X86 && (ACPI || JAILHOUSE_GUEST) 61587e65d05SJan Kiszka default y 61687e65d05SJan Kiszka help 61787e65d05SJan Kiszka The Power Management Timer is available on all ACPI-capable, 61887e65d05SJan Kiszka in most cases even if ACPI is unusable or blacklisted. 61987e65d05SJan Kiszka 62087e65d05SJan Kiszka This timing source is not affected by power management features 62187e65d05SJan Kiszka like aggressive processor idling, throttling, frequency and/or 62287e65d05SJan Kiszka voltage scaling, unlike the commonly used Time Stamp Counter 62387e65d05SJan Kiszka (TSC) timing source. 62487e65d05SJan Kiszka 62587e65d05SJan Kiszka You should nearly always say Y here because many modern 62687e65d05SJan Kiszka systems require this timer. 627