1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# ACPI Configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunconfig ARCH_SUPPORTS_ACPI 7*4882a593Smuzhiyun bool 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmenuconfig ACPI 10*4882a593Smuzhiyun bool "ACPI (Advanced Configuration and Power Interface) Support" 11*4882a593Smuzhiyun depends on ARCH_SUPPORTS_ACPI 12*4882a593Smuzhiyun select PNP 13*4882a593Smuzhiyun select NLS 14*4882a593Smuzhiyun default y if X86 15*4882a593Smuzhiyun help 16*4882a593Smuzhiyun Advanced Configuration and Power Interface (ACPI) support for 17*4882a593Smuzhiyun Linux requires an ACPI-compliant platform (hardware/firmware), 18*4882a593Smuzhiyun and assumes the presence of OS-directed configuration and power 19*4882a593Smuzhiyun management (OSPM) software. This option will enlarge your 20*4882a593Smuzhiyun kernel by about 70K. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun Linux ACPI provides a robust functional replacement for several 23*4882a593Smuzhiyun legacy configuration and power management interfaces, including 24*4882a593Smuzhiyun the Plug-and-Play BIOS specification (PnP BIOS), the 25*4882a593Smuzhiyun MultiProcessor Specification (MPS), and the Advanced Power 26*4882a593Smuzhiyun Management (APM) specification. If both ACPI and APM support 27*4882a593Smuzhiyun are configured, ACPI is used. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun The project home page for the Linux ACPI subsystem is here: 30*4882a593Smuzhiyun <https://01.org/linux-acpi> 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun Linux support for ACPI is based on Intel Corporation's ACPI 33*4882a593Smuzhiyun Component Architecture (ACPI CA). For more information on the 34*4882a593Smuzhiyun ACPI CA, see: 35*4882a593Smuzhiyun <https://acpica.org/> 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun ACPI is an open industry specification originally co-developed by 38*4882a593Smuzhiyun Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently, 39*4882a593Smuzhiyun it is developed by the ACPI Specification Working Group (ASWG) under 40*4882a593Smuzhiyun the UEFI Forum and any UEFI member can join the ASWG and contribute 41*4882a593Smuzhiyun to the ACPI specification. 42*4882a593Smuzhiyun The specification is available at: 43*4882a593Smuzhiyun <https://uefi.org/specifications> 44*4882a593Smuzhiyun 45*4882a593Smuzhiyunif ACPI 46*4882a593Smuzhiyun 47*4882a593Smuzhiyunconfig ACPI_LEGACY_TABLES_LOOKUP 48*4882a593Smuzhiyun bool 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunconfig ARCH_MIGHT_HAVE_ACPI_PDC 51*4882a593Smuzhiyun bool 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunconfig ACPI_GENERIC_GSI 54*4882a593Smuzhiyun bool 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunconfig ACPI_SYSTEM_POWER_STATES_SUPPORT 57*4882a593Smuzhiyun bool 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunconfig ACPI_CCA_REQUIRED 60*4882a593Smuzhiyun bool 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunconfig ACPI_DEBUGGER 63*4882a593Smuzhiyun bool "AML debugger interface" 64*4882a593Smuzhiyun select ACPI_DEBUG 65*4882a593Smuzhiyun help 66*4882a593Smuzhiyun Enable in-kernel debugging of AML facilities: statistics, 67*4882a593Smuzhiyun internal object dump, single step control method execution. 68*4882a593Smuzhiyun This is still under development, currently enabling this only 69*4882a593Smuzhiyun results in the compilation of the ACPICA debugger files. 70*4882a593Smuzhiyun 71*4882a593Smuzhiyunif ACPI_DEBUGGER 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunconfig ACPI_DEBUGGER_USER 74*4882a593Smuzhiyun tristate "Userspace debugger accessiblity" 75*4882a593Smuzhiyun depends on DEBUG_FS 76*4882a593Smuzhiyun help 77*4882a593Smuzhiyun Export /sys/kernel/debug/acpi/acpidbg for userspace utilities 78*4882a593Smuzhiyun to access the debugger functionalities. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyunendif 81*4882a593Smuzhiyun 82*4882a593Smuzhiyunconfig ACPI_SPCR_TABLE 83*4882a593Smuzhiyun bool "ACPI Serial Port Console Redirection Support" 84*4882a593Smuzhiyun default y if X86 85*4882a593Smuzhiyun help 86*4882a593Smuzhiyun Enable support for Serial Port Console Redirection (SPCR) Table. 87*4882a593Smuzhiyun This table provides information about the configuration of the 88*4882a593Smuzhiyun earlycon console. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyunconfig ACPI_LPIT 91*4882a593Smuzhiyun bool 92*4882a593Smuzhiyun depends on X86_64 93*4882a593Smuzhiyun default y 94*4882a593Smuzhiyun 95*4882a593Smuzhiyunconfig ACPI_SLEEP 96*4882a593Smuzhiyun bool 97*4882a593Smuzhiyun depends on SUSPEND || HIBERNATION 98*4882a593Smuzhiyun depends on ACPI_SYSTEM_POWER_STATES_SUPPORT 99*4882a593Smuzhiyun default y 100*4882a593Smuzhiyun 101*4882a593Smuzhiyunconfig ACPI_REV_OVERRIDE_POSSIBLE 102*4882a593Smuzhiyun bool "Allow supported ACPI revision to be overridden" 103*4882a593Smuzhiyun depends on X86 104*4882a593Smuzhiyun default y 105*4882a593Smuzhiyun help 106*4882a593Smuzhiyun The platform firmware on some systems expects Linux to return "5" as 107*4882a593Smuzhiyun the supported ACPI revision which makes it expose system configuration 108*4882a593Smuzhiyun information in a special way. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun For example, based on what ACPI exports as the supported revision, 111*4882a593Smuzhiyun Dell XPS 13 (2015) configures its audio device to either work in HDA 112*4882a593Smuzhiyun mode or in I2S mode, where the former is supposed to be used on Linux 113*4882a593Smuzhiyun until the latter is fully supported (in the kernel as well as in user 114*4882a593Smuzhiyun space). 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun This option enables a DMI-based quirk for the above Dell machine (so 117*4882a593Smuzhiyun that HDA audio is exposed by the platform firmware to the kernel) and 118*4882a593Smuzhiyun makes it possible to force the kernel to return "5" as the supported 119*4882a593Smuzhiyun ACPI revision via the "acpi_rev_override" command line switch. 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunconfig ACPI_EC_DEBUGFS 122*4882a593Smuzhiyun tristate "EC read/write access through /sys/kernel/debug/ec" 123*4882a593Smuzhiyun help 124*4882a593Smuzhiyun Say N to disable Embedded Controller /sys/kernel/debug interface 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun Be aware that using this interface can confuse your Embedded 127*4882a593Smuzhiyun Controller in a way that a normal reboot is not enough. You then 128*4882a593Smuzhiyun have to power off your system, and remove the laptop battery for 129*4882a593Smuzhiyun some seconds. 130*4882a593Smuzhiyun An Embedded Controller typically is available on laptops and reads 131*4882a593Smuzhiyun sensor values like battery state and temperature. 132*4882a593Smuzhiyun The kernel accesses the EC through ACPI parsed code provided by BIOS 133*4882a593Smuzhiyun tables. This option allows to access the EC directly without ACPI 134*4882a593Smuzhiyun code being involved. 135*4882a593Smuzhiyun Thus this option is a debug option that helps to write ACPI drivers 136*4882a593Smuzhiyun and can be used to identify ACPI code or EC firmware bugs. 137*4882a593Smuzhiyun 138*4882a593Smuzhiyunconfig ACPI_AC 139*4882a593Smuzhiyun tristate "AC Adapter" 140*4882a593Smuzhiyun select POWER_SUPPLY 141*4882a593Smuzhiyun default y 142*4882a593Smuzhiyun help 143*4882a593Smuzhiyun This driver supports the AC Adapter object, which indicates 144*4882a593Smuzhiyun whether a system is on AC or not. If you have a system that can 145*4882a593Smuzhiyun switch between A/C and battery, say Y. 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun To compile this driver as a module, choose M here: 148*4882a593Smuzhiyun the module will be called ac. 149*4882a593Smuzhiyun 150*4882a593Smuzhiyunconfig ACPI_BATTERY 151*4882a593Smuzhiyun tristate "Battery" 152*4882a593Smuzhiyun select POWER_SUPPLY 153*4882a593Smuzhiyun default y 154*4882a593Smuzhiyun help 155*4882a593Smuzhiyun This driver adds support for battery information through 156*4882a593Smuzhiyun /proc/acpi/battery. If you have a mobile system with a battery, 157*4882a593Smuzhiyun say Y. 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun To compile this driver as a module, choose M here: 160*4882a593Smuzhiyun the module will be called battery. 161*4882a593Smuzhiyun 162*4882a593Smuzhiyunconfig ACPI_BUTTON 163*4882a593Smuzhiyun tristate "Button" 164*4882a593Smuzhiyun depends on INPUT 165*4882a593Smuzhiyun default y 166*4882a593Smuzhiyun help 167*4882a593Smuzhiyun This driver handles events on the power, sleep, and lid buttons. 168*4882a593Smuzhiyun A daemon reads events from input devices or via netlink and 169*4882a593Smuzhiyun performs user-defined actions such as shutting down the system. 170*4882a593Smuzhiyun This is necessary for software-controlled poweroff. 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun To compile this driver as a module, choose M here: 173*4882a593Smuzhiyun the module will be called button. 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunconfig ACPI_TINY_POWER_BUTTON 176*4882a593Smuzhiyun tristate "Tiny Power Button Driver" 177*4882a593Smuzhiyun depends on !ACPI_BUTTON 178*4882a593Smuzhiyun help 179*4882a593Smuzhiyun This driver provides a tiny alternative to the ACPI Button driver. 180*4882a593Smuzhiyun The tiny power button driver only handles the power button. Rather 181*4882a593Smuzhiyun than notifying userspace via the input layer or a netlink event, this 182*4882a593Smuzhiyun driver directly signals the init process to shut down. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun This driver is particularly suitable for cloud and VM environments, 185*4882a593Smuzhiyun which use a simulated power button to initiate a controlled poweroff, 186*4882a593Smuzhiyun but which may not want to run a separate userspace daemon to process 187*4882a593Smuzhiyun input events. 188*4882a593Smuzhiyun 189*4882a593Smuzhiyunconfig ACPI_TINY_POWER_BUTTON_SIGNAL 190*4882a593Smuzhiyun int "Tiny Power Button Signal" 191*4882a593Smuzhiyun depends on ACPI_TINY_POWER_BUTTON 192*4882a593Smuzhiyun default 38 193*4882a593Smuzhiyun help 194*4882a593Smuzhiyun Default signal to send to init in response to the power button. 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun Likely values here include 38 (SIGRTMIN+4) to power off, or 2 197*4882a593Smuzhiyun (SIGINT) to simulate Ctrl+Alt+Del. 198*4882a593Smuzhiyun 199*4882a593Smuzhiyunconfig ACPI_VIDEO 200*4882a593Smuzhiyun tristate "Video" 201*4882a593Smuzhiyun depends on X86 && BACKLIGHT_CLASS_DEVICE 202*4882a593Smuzhiyun depends on INPUT 203*4882a593Smuzhiyun select THERMAL 204*4882a593Smuzhiyun help 205*4882a593Smuzhiyun This driver implements the ACPI Extensions For Display Adapters 206*4882a593Smuzhiyun for integrated graphics devices on motherboard, as specified in 207*4882a593Smuzhiyun ACPI 2.0 Specification, Appendix B. This supports basic operations 208*4882a593Smuzhiyun such as defining the video POST device, retrieving EDID information, 209*4882a593Smuzhiyun and setting up a video output. 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun To compile this driver as a module, choose M here: 212*4882a593Smuzhiyun the module will be called video. 213*4882a593Smuzhiyun 214*4882a593Smuzhiyunconfig ACPI_FAN 215*4882a593Smuzhiyun tristate "Fan" 216*4882a593Smuzhiyun depends on THERMAL 217*4882a593Smuzhiyun default y 218*4882a593Smuzhiyun help 219*4882a593Smuzhiyun This driver supports ACPI fan devices, allowing user-mode 220*4882a593Smuzhiyun applications to perform basic fan control (on, off, status). 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun To compile this driver as a module, choose M here: 223*4882a593Smuzhiyun the module will be called fan. 224*4882a593Smuzhiyun 225*4882a593Smuzhiyunconfig ACPI_TAD 226*4882a593Smuzhiyun tristate "ACPI Time and Alarm (TAD) Device Support" 227*4882a593Smuzhiyun depends on SYSFS && PM_SLEEP 228*4882a593Smuzhiyun help 229*4882a593Smuzhiyun The ACPI Time and Alarm (TAD) device is an alternative to the Real 230*4882a593Smuzhiyun Time Clock (RTC). Its wake timers allow the system to transition from 231*4882a593Smuzhiyun the S3 (or optionally S4/S5) state to S0 state after a time period 232*4882a593Smuzhiyun elapses. In comparison with the RTC Alarm, the TAD provides a larger 233*4882a593Smuzhiyun scale of flexibility in the wake timers. The time capabilities of the 234*4882a593Smuzhiyun TAD maintain the time of day information across platform power 235*4882a593Smuzhiyun transitions, and keep track of time even when the platform is turned 236*4882a593Smuzhiyun off. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyunconfig ACPI_DOCK 239*4882a593Smuzhiyun bool "Dock" 240*4882a593Smuzhiyun help 241*4882a593Smuzhiyun This driver supports ACPI-controlled docking stations and removable 242*4882a593Smuzhiyun drive bays such as the IBM Ultrabay and the Dell Module Bay. 243*4882a593Smuzhiyun 244*4882a593Smuzhiyunconfig ACPI_CPU_FREQ_PSS 245*4882a593Smuzhiyun bool 246*4882a593Smuzhiyun select THERMAL 247*4882a593Smuzhiyun 248*4882a593Smuzhiyunconfig ACPI_PROCESSOR_CSTATE 249*4882a593Smuzhiyun def_bool y 250*4882a593Smuzhiyun depends on ACPI_PROCESSOR 251*4882a593Smuzhiyun depends on IA64 || X86 252*4882a593Smuzhiyun 253*4882a593Smuzhiyunconfig ACPI_PROCESSOR_IDLE 254*4882a593Smuzhiyun bool 255*4882a593Smuzhiyun select CPU_IDLE 256*4882a593Smuzhiyun 257*4882a593Smuzhiyunconfig ACPI_MCFG 258*4882a593Smuzhiyun bool 259*4882a593Smuzhiyun 260*4882a593Smuzhiyunconfig ACPI_CPPC_LIB 261*4882a593Smuzhiyun bool 262*4882a593Smuzhiyun depends on ACPI_PROCESSOR 263*4882a593Smuzhiyun select MAILBOX 264*4882a593Smuzhiyun select PCC 265*4882a593Smuzhiyun help 266*4882a593Smuzhiyun If this option is enabled, this file implements common functionality 267*4882a593Smuzhiyun to parse CPPC tables as described in the ACPI 5.1+ spec. The 268*4882a593Smuzhiyun routines implemented are meant to be used by other 269*4882a593Smuzhiyun drivers to control CPU performance using CPPC semantics. 270*4882a593Smuzhiyun If your platform does not support CPPC in firmware, 271*4882a593Smuzhiyun leave this option disabled. 272*4882a593Smuzhiyun 273*4882a593Smuzhiyunconfig ACPI_PROCESSOR 274*4882a593Smuzhiyun tristate "Processor" 275*4882a593Smuzhiyun depends on X86 || IA64 || ARM64 276*4882a593Smuzhiyun select ACPI_PROCESSOR_IDLE 277*4882a593Smuzhiyun select ACPI_CPU_FREQ_PSS if X86 || IA64 278*4882a593Smuzhiyun default y 279*4882a593Smuzhiyun help 280*4882a593Smuzhiyun This driver adds support for the ACPI Processor package. It is required 281*4882a593Smuzhiyun by several flavors of cpufreq performance-state, thermal, throttling and 282*4882a593Smuzhiyun idle drivers. 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun To compile this driver as a module, choose M here: 285*4882a593Smuzhiyun the module will be called processor. 286*4882a593Smuzhiyun 287*4882a593Smuzhiyunconfig ACPI_IPMI 288*4882a593Smuzhiyun tristate "IPMI" 289*4882a593Smuzhiyun depends on IPMI_HANDLER 290*4882a593Smuzhiyun help 291*4882a593Smuzhiyun This driver enables the ACPI to access the BMC controller. And it 292*4882a593Smuzhiyun uses the IPMI request/response message to communicate with BMC 293*4882a593Smuzhiyun controller, which can be found on on the server. 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun To compile this driver as a module, choose M here: 296*4882a593Smuzhiyun the module will be called as acpi_ipmi. 297*4882a593Smuzhiyun 298*4882a593Smuzhiyunconfig ACPI_HOTPLUG_CPU 299*4882a593Smuzhiyun bool 300*4882a593Smuzhiyun depends on ACPI_PROCESSOR && HOTPLUG_CPU 301*4882a593Smuzhiyun select ACPI_CONTAINER 302*4882a593Smuzhiyun default y 303*4882a593Smuzhiyun 304*4882a593Smuzhiyunconfig ACPI_PROCESSOR_AGGREGATOR 305*4882a593Smuzhiyun tristate "Processor Aggregator" 306*4882a593Smuzhiyun depends on ACPI_PROCESSOR 307*4882a593Smuzhiyun depends on X86 308*4882a593Smuzhiyun help 309*4882a593Smuzhiyun ACPI 4.0 defines processor Aggregator, which enables OS to perform 310*4882a593Smuzhiyun specific processor configuration and control that applies to all 311*4882a593Smuzhiyun processors in the platform. Currently only logical processor idling 312*4882a593Smuzhiyun is defined, which is to reduce power consumption. This driver 313*4882a593Smuzhiyun supports the new device. 314*4882a593Smuzhiyun 315*4882a593Smuzhiyunconfig ACPI_THERMAL 316*4882a593Smuzhiyun tristate "Thermal Zone" 317*4882a593Smuzhiyun depends on ACPI_PROCESSOR 318*4882a593Smuzhiyun select THERMAL 319*4882a593Smuzhiyun default y 320*4882a593Smuzhiyun help 321*4882a593Smuzhiyun This driver supports ACPI thermal zones. Most mobile and 322*4882a593Smuzhiyun some desktop systems support ACPI thermal zones. It is HIGHLY 323*4882a593Smuzhiyun recommended that this option be enabled, as your processor(s) 324*4882a593Smuzhiyun may be damaged without it. 325*4882a593Smuzhiyun 326*4882a593Smuzhiyun To compile this driver as a module, choose M here: 327*4882a593Smuzhiyun the module will be called thermal. 328*4882a593Smuzhiyun 329*4882a593Smuzhiyunconfig ACPI_CUSTOM_DSDT_FILE 330*4882a593Smuzhiyun string "Custom DSDT Table file to include" 331*4882a593Smuzhiyun default "" 332*4882a593Smuzhiyun depends on !STANDALONE 333*4882a593Smuzhiyun help 334*4882a593Smuzhiyun This option supports a custom DSDT by linking it into the kernel. 335*4882a593Smuzhiyun See Documentation/admin-guide/acpi/dsdt-override.rst 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun Enter the full path name to the file which includes the AmlCode 338*4882a593Smuzhiyun or dsdt_aml_code declaration. 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun If unsure, don't enter a file name. 341*4882a593Smuzhiyun 342*4882a593Smuzhiyunconfig ACPI_CUSTOM_DSDT 343*4882a593Smuzhiyun bool 344*4882a593Smuzhiyun default ACPI_CUSTOM_DSDT_FILE != "" 345*4882a593Smuzhiyun 346*4882a593Smuzhiyunconfig ARCH_HAS_ACPI_TABLE_UPGRADE 347*4882a593Smuzhiyun def_bool n 348*4882a593Smuzhiyun 349*4882a593Smuzhiyunconfig ACPI_TABLE_UPGRADE 350*4882a593Smuzhiyun bool "Allow upgrading ACPI tables via initrd" 351*4882a593Smuzhiyun depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE 352*4882a593Smuzhiyun default y 353*4882a593Smuzhiyun help 354*4882a593Smuzhiyun This option provides functionality to upgrade arbitrary ACPI tables 355*4882a593Smuzhiyun via initrd. No functional change if no ACPI tables are passed via 356*4882a593Smuzhiyun initrd, therefore it's safe to say Y. 357*4882a593Smuzhiyun See Documentation/admin-guide/acpi/initrd_table_override.rst for details 358*4882a593Smuzhiyun 359*4882a593Smuzhiyunconfig ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD 360*4882a593Smuzhiyun bool "Override ACPI tables from built-in initrd" 361*4882a593Smuzhiyun depends on ACPI_TABLE_UPGRADE 362*4882a593Smuzhiyun depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE 363*4882a593Smuzhiyun help 364*4882a593Smuzhiyun This option provides functionality to override arbitrary ACPI tables 365*4882a593Smuzhiyun from built-in uncompressed initrd. 366*4882a593Smuzhiyun 367*4882a593Smuzhiyun See Documentation/admin-guide/acpi/initrd_table_override.rst for details 368*4882a593Smuzhiyun 369*4882a593Smuzhiyunconfig ACPI_DEBUG 370*4882a593Smuzhiyun bool "Debug Statements" 371*4882a593Smuzhiyun help 372*4882a593Smuzhiyun The ACPI subsystem can produce debug output. Saying Y enables this 373*4882a593Smuzhiyun output and increases the kernel size by around 50K. 374*4882a593Smuzhiyun 375*4882a593Smuzhiyun Use the acpi.debug_layer and acpi.debug_level kernel command-line 376*4882a593Smuzhiyun parameters documented in Documentation/firmware-guide/acpi/debug.rst and 377*4882a593Smuzhiyun Documentation/admin-guide/kernel-parameters.rst to control the type and 378*4882a593Smuzhiyun amount of debug output. 379*4882a593Smuzhiyun 380*4882a593Smuzhiyunconfig ACPI_PCI_SLOT 381*4882a593Smuzhiyun bool "PCI slot detection driver" 382*4882a593Smuzhiyun depends on SYSFS && PCI 383*4882a593Smuzhiyun help 384*4882a593Smuzhiyun This driver creates entries in /sys/bus/pci/slots/ for all PCI 385*4882a593Smuzhiyun slots in the system. This can help correlate PCI bus addresses, 386*4882a593Smuzhiyun i.e., segment/bus/device/function tuples, with physical slots in 387*4882a593Smuzhiyun the system. If you are unsure, say N. 388*4882a593Smuzhiyun 389*4882a593Smuzhiyunconfig ACPI_CONTAINER 390*4882a593Smuzhiyun bool "Container and Module Devices" 391*4882a593Smuzhiyun default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU) 392*4882a593Smuzhiyun help 393*4882a593Smuzhiyun This driver supports ACPI Container and Module devices (IDs 394*4882a593Smuzhiyun ACPI0004, PNP0A05, and PNP0A06). 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun This helps support hotplug of nodes, CPUs, and memory. 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun To compile this driver as a module, choose M here: 399*4882a593Smuzhiyun the module will be called container. 400*4882a593Smuzhiyun 401*4882a593Smuzhiyunconfig ACPI_HOTPLUG_MEMORY 402*4882a593Smuzhiyun bool "Memory Hotplug" 403*4882a593Smuzhiyun depends on MEMORY_HOTPLUG 404*4882a593Smuzhiyun help 405*4882a593Smuzhiyun This driver supports ACPI memory hotplug. The driver 406*4882a593Smuzhiyun fields notifications on ACPI memory devices (PNP0C80), 407*4882a593Smuzhiyun which represent memory ranges that may be onlined or 408*4882a593Smuzhiyun offlined during runtime. 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun If your hardware and firmware do not support adding or 411*4882a593Smuzhiyun removing memory devices at runtime, you need not enable 412*4882a593Smuzhiyun this driver. 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun To compile this driver as a module, choose M here: 415*4882a593Smuzhiyun the module will be called acpi_memhotplug. 416*4882a593Smuzhiyun 417*4882a593Smuzhiyunconfig ACPI_HOTPLUG_IOAPIC 418*4882a593Smuzhiyun bool 419*4882a593Smuzhiyun depends on PCI 420*4882a593Smuzhiyun depends on X86_IO_APIC 421*4882a593Smuzhiyun default y 422*4882a593Smuzhiyun 423*4882a593Smuzhiyunconfig ACPI_SBS 424*4882a593Smuzhiyun tristate "Smart Battery System" 425*4882a593Smuzhiyun depends on X86 426*4882a593Smuzhiyun select POWER_SUPPLY 427*4882a593Smuzhiyun help 428*4882a593Smuzhiyun This driver supports the Smart Battery System, another 429*4882a593Smuzhiyun type of access to battery information, found on some laptops. 430*4882a593Smuzhiyun 431*4882a593Smuzhiyun To compile this driver as a module, choose M here: 432*4882a593Smuzhiyun the modules will be called sbs and sbshc. 433*4882a593Smuzhiyun 434*4882a593Smuzhiyunconfig ACPI_HED 435*4882a593Smuzhiyun tristate "Hardware Error Device" 436*4882a593Smuzhiyun help 437*4882a593Smuzhiyun This driver supports the Hardware Error Device (PNP0C33), 438*4882a593Smuzhiyun which is used to report some hardware errors notified via 439*4882a593Smuzhiyun SCI, mainly the corrected errors. 440*4882a593Smuzhiyun 441*4882a593Smuzhiyunconfig ACPI_CUSTOM_METHOD 442*4882a593Smuzhiyun tristate "Allow ACPI methods to be inserted/replaced at run time" 443*4882a593Smuzhiyun depends on DEBUG_FS 444*4882a593Smuzhiyun help 445*4882a593Smuzhiyun This debug facility allows ACPI AML methods to be inserted and/or 446*4882a593Smuzhiyun replaced without rebooting the system. For details refer to: 447*4882a593Smuzhiyun Documentation/firmware-guide/acpi/method-customizing.rst. 448*4882a593Smuzhiyun 449*4882a593Smuzhiyun NOTE: This option is security sensitive, because it allows arbitrary 450*4882a593Smuzhiyun kernel memory to be written to by root (uid=0) users, allowing them 451*4882a593Smuzhiyun to bypass certain security measures (e.g. if root is not allowed to 452*4882a593Smuzhiyun load additional kernel modules after boot, this feature may be used 453*4882a593Smuzhiyun to override that restriction). 454*4882a593Smuzhiyun 455*4882a593Smuzhiyunconfig ACPI_BGRT 456*4882a593Smuzhiyun bool "Boottime Graphics Resource Table support" 457*4882a593Smuzhiyun depends on EFI && (X86 || ARM64) 458*4882a593Smuzhiyun help 459*4882a593Smuzhiyun This driver adds support for exposing the ACPI Boottime Graphics 460*4882a593Smuzhiyun Resource Table, which allows the operating system to obtain 461*4882a593Smuzhiyun data from the firmware boot splash. It will appear under 462*4882a593Smuzhiyun /sys/firmware/acpi/bgrt/ . 463*4882a593Smuzhiyun 464*4882a593Smuzhiyunconfig ACPI_REDUCED_HARDWARE_ONLY 465*4882a593Smuzhiyun bool "Hardware-reduced ACPI support only" if EXPERT 466*4882a593Smuzhiyun def_bool n 467*4882a593Smuzhiyun help 468*4882a593Smuzhiyun This config item changes the way the ACPI code is built. When this 469*4882a593Smuzhiyun option is selected, the kernel will use a specialized version of 470*4882a593Smuzhiyun ACPICA that ONLY supports the ACPI "reduced hardware" mode. The 471*4882a593Smuzhiyun resulting kernel will be smaller but it will also be restricted to 472*4882a593Smuzhiyun running in ACPI reduced hardware mode ONLY. 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun If you are unsure what to do, do not enable this option. 475*4882a593Smuzhiyun 476*4882a593Smuzhiyunsource "drivers/acpi/nfit/Kconfig" 477*4882a593Smuzhiyunsource "drivers/acpi/numa/Kconfig" 478*4882a593Smuzhiyunsource "drivers/acpi/apei/Kconfig" 479*4882a593Smuzhiyunsource "drivers/acpi/dptf/Kconfig" 480*4882a593Smuzhiyun 481*4882a593Smuzhiyunconfig ACPI_WATCHDOG 482*4882a593Smuzhiyun bool 483*4882a593Smuzhiyun 484*4882a593Smuzhiyunconfig ACPI_EXTLOG 485*4882a593Smuzhiyun tristate "Extended Error Log support" 486*4882a593Smuzhiyun depends on X86_MCE && X86_LOCAL_APIC && EDAC 487*4882a593Smuzhiyun select UEFI_CPER 488*4882a593Smuzhiyun help 489*4882a593Smuzhiyun Certain usages such as Predictive Failure Analysis (PFA) require 490*4882a593Smuzhiyun more information about the error than what can be described in 491*4882a593Smuzhiyun processor machine check banks. Most server processors log 492*4882a593Smuzhiyun additional information about the error in processor uncore 493*4882a593Smuzhiyun registers. Since the addresses and layout of these registers vary 494*4882a593Smuzhiyun widely from one processor to another, system software cannot 495*4882a593Smuzhiyun readily make use of them. To complicate matters further, some of 496*4882a593Smuzhiyun the additional error information cannot be constructed without 497*4882a593Smuzhiyun detailed knowledge about platform topology. 498*4882a593Smuzhiyun 499*4882a593Smuzhiyun Enhanced MCA Logging allows firmware to provide additional error 500*4882a593Smuzhiyun information to system software, synchronous with MCE or CMCI. This 501*4882a593Smuzhiyun driver adds support for that functionality with corresponding 502*4882a593Smuzhiyun tracepoint which carries that information to userspace. 503*4882a593Smuzhiyun 504*4882a593Smuzhiyunconfig ACPI_ADXL 505*4882a593Smuzhiyun bool 506*4882a593Smuzhiyun 507*4882a593Smuzhiyunconfig ACPI_CONFIGFS 508*4882a593Smuzhiyun tristate "ACPI configfs support" 509*4882a593Smuzhiyun select CONFIGFS_FS 510*4882a593Smuzhiyun help 511*4882a593Smuzhiyun Select this option to enable support for ACPI configuration from 512*4882a593Smuzhiyun userspace. The configurable ACPI groups will be visible under 513*4882a593Smuzhiyun /config/acpi, assuming configfs is mounted under /config. 514*4882a593Smuzhiyun 515*4882a593Smuzhiyunif ARM64 516*4882a593Smuzhiyunsource "drivers/acpi/arm64/Kconfig" 517*4882a593Smuzhiyun 518*4882a593Smuzhiyunconfig ACPI_PPTT 519*4882a593Smuzhiyun bool 520*4882a593Smuzhiyunendif 521*4882a593Smuzhiyun 522*4882a593Smuzhiyunsource "drivers/acpi/pmic/Kconfig" 523*4882a593Smuzhiyun 524*4882a593Smuzhiyunendif # ACPI 525*4882a593Smuzhiyun 526*4882a593Smuzhiyunconfig X86_PM_TIMER 527*4882a593Smuzhiyun bool "Power Management Timer Support" if EXPERT 528*4882a593Smuzhiyun depends on X86 && (ACPI || JAILHOUSE_GUEST) 529*4882a593Smuzhiyun default y 530*4882a593Smuzhiyun help 531*4882a593Smuzhiyun The Power Management Timer is available on all ACPI-capable, 532*4882a593Smuzhiyun in most cases even if ACPI is unusable or blacklisted. 533*4882a593Smuzhiyun 534*4882a593Smuzhiyun This timing source is not affected by power management features 535*4882a593Smuzhiyun like aggressive processor idling, throttling, frequency and/or 536*4882a593Smuzhiyun voltage scaling, unlike the commonly used Time Stamp Counter 537*4882a593Smuzhiyun (TSC) timing source. 538*4882a593Smuzhiyun 539*4882a593Smuzhiyun You should nearly always say Y here because many modern 540*4882a593Smuzhiyun systems require this timer. 541