blob: ba45541b1f1f858fdf47335da23fa168784a8f2c [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001# SPDX-License-Identifier: GPL-2.0
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# ACPI Configuration
4#
5
Arnd Bergmannf5d707e2018-08-21 22:37:33 +02006config ARCH_SUPPORTS_ACPI
7 bool
8
Jan Engelhardt3f2c48c2007-07-03 01:40:59 -04009menuconfig ACPI
Frans Pop355ee5e2007-10-29 17:20:38 -040010 bool "ACPI (Advanced Configuration and Power Interface) Support"
Arnd Bergmann2c870e62018-07-24 11:48:45 +020011 depends on ARCH_SUPPORTS_ACPI
Len Brown243b66e2007-02-15 22:34:36 -050012 select PNP
Sinan Kaya2e610692018-12-30 20:40:05 +000013 select NLS
Arnd Bergmann2c870e62018-07-24 11:48:45 +020014 default y if X86
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070015 help
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 Advanced Configuration and Power Interface (ACPI) support for
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070017 Linux requires an ACPI-compliant platform (hardware/firmware),
Linus Torvalds1da177e2005-04-16 15:20:36 -070018 and assumes the presence of OS-directed configuration and power
19 management (OSPM) software. This option will enlarge your
20 kernel by about 70K.
21
22 Linux ACPI provides a robust functional replacement for several
23 legacy configuration and power management interfaces, including
24 the Plug-and-Play BIOS specification (PnP BIOS), the
25 MultiProcessor Specification (MPS), and the Advanced Power
26 Management (APM) specification. If both ACPI and APM support
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070027 are configured, ACPI is used.
Linus Torvalds1da177e2005-04-16 15:20:36 -070028
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070029 The project home page for the Linux ACPI subsystem is here:
Rafael J. Wysockiaaf3d292013-10-10 23:25:58 +020030 <https://01.org/linux-acpi>
Linus Torvalds1da177e2005-04-16 15:20:36 -070031
32 Linux support for ACPI is based on Intel Corporation's ACPI
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070033 Component Architecture (ACPI CA). For more information on the
34 ACPI CA, see:
Alexander A. Klimov4ce77962020-07-17 20:24:36 +020035 <https://acpica.org/>
Linus Torvalds1da177e2005-04-16 15:20:36 -070036
Hanjun Guoc7f52202014-04-08 20:59:48 +080037 ACPI is an open industry specification originally co-developed by
38 Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
39 it is developed by the ACPI Specification Working Group (ASWG) under
40 the UEFI Forum and any UEFI member can join the ASWG and contribute
41 to the ACPI specification.
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070042 The specification is available at:
Tiezhu Yang0585c1c2020-07-27 17:29:38 +080043 <https://uefi.org/specifications>
Linus Torvalds1da177e2005-04-16 15:20:36 -070044
Len Brown3e11c3c2005-05-27 04:53:27 -040045if ACPI
46
Graeme Gregory8a1664b2014-07-18 18:02:52 +080047config ACPI_LEGACY_TABLES_LOOKUP
48 bool
49
Hanjun Guo46ba51e2014-07-18 18:02:54 +080050config ARCH_MIGHT_HAVE_ACPI_PDC
51 bool
52
Lorenzo Pieralisid8f4f162015-03-24 17:58:51 +000053config ACPI_GENERIC_GSI
54 bool
55
Graeme Gregory6e0a0ea2015-03-24 14:02:39 +000056config ACPI_SYSTEM_POWER_STATES_SUPPORT
57 bool
58
Suthikulpanit, Suraveed0562672015-06-10 11:08:52 -050059config ACPI_CCA_REQUIRED
60 bool
61
Dan Williamsf64bd792021-10-29 12:51:32 -070062config ACPI_TABLE_LIB
63 bool
64
Lv Zheng4d946f72015-10-19 10:25:56 +080065config ACPI_DEBUGGER
Lv Zheng8cfb0cd2015-12-03 10:43:00 +080066 bool "AML debugger interface"
Lv Zheng4d946f72015-10-19 10:25:56 +080067 select ACPI_DEBUG
68 help
Lv Zheng836d083012015-12-03 10:43:14 +080069 Enable in-kernel debugging of AML facilities: statistics,
70 internal object dump, single step control method execution.
Lv Zheng4d946f72015-10-19 10:25:56 +080071 This is still under development, currently enabling this only
72 results in the compilation of the ACPICA debugger files.
73
Lv Zheng836d083012015-12-03 10:43:14 +080074if ACPI_DEBUGGER
75
76config ACPI_DEBUGGER_USER
Masanari Iidac117dff2021-09-21 15:21:24 +090077 tristate "Userspace debugger accessibility"
Lv Zheng836d083012015-12-03 10:43:14 +080078 depends on DEBUG_FS
79 help
80 Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
81 to access the debugger functionalities.
82
83endif
84
Aleksey Makarovad1696f2016-09-27 23:54:13 +030085config ACPI_SPCR_TABLE
Prarit Bhargava0231d002018-01-18 10:09:51 -050086 bool "ACPI Serial Port Console Redirection Support"
87 default y if X86
88 help
89 Enable support for Serial Port Console Redirection (SPCR) Table.
90 This table provides information about the configuration of the
91 earlycon console.
Aleksey Makarovad1696f2016-09-27 23:54:13 +030092
Zhang Ruid1eb86e2021-01-29 14:15:48 +080093config ACPI_FPDT
94 bool "ACPI Firmware Performance Data Table (FPDT) support"
95 depends on X86_64
96 help
97 Enable support for the Firmware Performance Data Table (FPDT).
98 This table provides information on the timing of the system
99 boot, S3 suspend and S3 resume firmware code paths.
100
Srinivas Pandruvadaeeb2d802017-10-05 16:24:03 -0700101config ACPI_LPIT
102 bool
103 depends on X86_64
104 default y
105
Len Brown673d5b42007-07-28 03:33:16 -0400106config ACPI_SLEEP
107 bool
Rafael J. Wysocki5d1e0722008-10-22 14:58:43 -0400108 depends on SUSPEND || HIBERNATION
Graeme Gregory6e0a0ea2015-03-24 14:02:39 +0000109 depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
Len Brown673d5b42007-07-28 03:33:16 -0400110 default y
111
Rafael J. Wysocki18d78b62015-07-03 01:06:00 +0200112config ACPI_REV_OVERRIDE_POSSIBLE
Masanari Iida9165dab2016-09-17 23:44:17 +0900113 bool "Allow supported ACPI revision to be overridden"
Rafael J. Wysocki18d78b62015-07-03 01:06:00 +0200114 depends on X86
115 default y
116 help
117 The platform firmware on some systems expects Linux to return "5" as
118 the supported ACPI revision which makes it expose system configuration
119 information in a special way.
120
121 For example, based on what ACPI exports as the supported revision,
122 Dell XPS 13 (2015) configures its audio device to either work in HDA
123 mode or in I2S mode, where the former is supposed to be used on Linux
124 until the latter is fully supported (in the kernel as well as in user
125 space).
126
127 This option enables a DMI-based quirk for the above Dell machine (so
128 that HDA audio is exposed by the platform firmware to the kernel) and
129 makes it possible to force the kernel to return "5" as the supported
130 ACPI revision via the "acpi_rev_override" command line switch.
131
Thomas Renninger1195a092010-07-16 13:11:31 +0200132config ACPI_EC_DEBUGFS
133 tristate "EC read/write access through /sys/kernel/debug/ec"
Thomas Renninger1195a092010-07-16 13:11:31 +0200134 help
135 Say N to disable Embedded Controller /sys/kernel/debug interface
136
Thomas Renninger500de3dd2010-07-29 22:30:24 +0200137 Be aware that using this interface can confuse your Embedded
138 Controller in a way that a normal reboot is not enough. You then
Andrea Gelmini25cb1bf2010-08-18 15:22:10 +0200139 have to power off your system, and remove the laptop battery for
Thomas Renninger500de3dd2010-07-29 22:30:24 +0200140 some seconds.
Thomas Renninger1195a092010-07-16 13:11:31 +0200141 An Embedded Controller typically is available on laptops and reads
142 sensor values like battery state and temperature.
Thomas Renninger500de3dd2010-07-29 22:30:24 +0200143 The kernel accesses the EC through ACPI parsed code provided by BIOS
144 tables. This option allows to access the EC directly without ACPI
145 code being involved.
Thomas Renninger1195a092010-07-16 13:11:31 +0200146 Thus this option is a debug option that helps to write ACPI drivers
147 and can be used to identify ACPI code or EC firmware bugs.
148
Linus Torvalds1da177e2005-04-16 15:20:36 -0700149config ACPI_AC
150 tristate "AC Adapter"
Zhang Rui1b3d4c32010-10-08 13:54:57 +0800151 select POWER_SUPPLY
Len Brown07fefe42005-08-25 12:22:04 -0400152 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700153 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700154 This driver supports the AC Adapter object, which indicates
155 whether a system is on AC or not. If you have a system that can
Len Brown07fefe42005-08-25 12:22:04 -0400156 switch between A/C and battery, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700157
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700158 To compile this driver as a module, choose M here:
159 the module will be called ac.
160
Linus Torvalds1da177e2005-04-16 15:20:36 -0700161config ACPI_BATTERY
162 tristate "Battery"
Zhang Rui1b3d4c32010-10-08 13:54:57 +0800163 select POWER_SUPPLY
Len Brown07fefe42005-08-25 12:22:04 -0400164 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700165 help
166 This driver adds support for battery information through
167 /proc/acpi/battery. If you have a mobile system with a battery,
168 say Y.
169
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700170 To compile this driver as a module, choose M here:
171 the module will be called battery.
172
Linus Torvalds1da177e2005-04-16 15:20:36 -0700173config ACPI_BUTTON
174 tristate "Button"
Dmitry Torokhovc0968f02006-11-09 00:40:13 -0500175 depends on INPUT
Len Brown07fefe42005-08-25 12:22:04 -0400176 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700177 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700178 This driver handles events on the power, sleep, and lid buttons.
Krzysztof Mazur7d13f942013-10-13 00:11:00 +0200179 A daemon reads events from input devices or via netlink and
180 performs user-defined actions such as shutting down the system.
181 This is necessary for software-controlled poweroff.
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700182
183 To compile this driver as a module, choose M here:
184 the module will be called button.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700185
Josh Tripletta1b93e82020-02-11 15:38:06 -0800186config ACPI_TINY_POWER_BUTTON
187 tristate "Tiny Power Button Driver"
188 depends on !ACPI_BUTTON
189 help
190 This driver provides a tiny alternative to the ACPI Button driver.
191 The tiny power button driver only handles the power button. Rather
192 than notifying userspace via the input layer or a netlink event, this
193 driver directly signals the init process to shut down.
194
195 This driver is particularly suitable for cloud and VM environments,
196 which use a simulated power button to initiate a controlled poweroff,
197 but which may not want to run a separate userspace daemon to process
198 input events.
199
200config ACPI_TINY_POWER_BUTTON_SIGNAL
201 int "Tiny Power Button Signal"
202 depends on ACPI_TINY_POWER_BUTTON
203 default 38
204 help
205 Default signal to send to init in response to the power button.
206
207 Likely values here include 38 (SIGRTMIN+4) to power off, or 2
208 (SIGINT) to simulate Ctrl+Alt+Del.
209
Linus Torvalds1da177e2005-04-16 15:20:36 -0700210config ACPI_VIDEO
211 tristate "Video"
Jean Delvare9f380fc2014-03-17 15:46:44 +0100212 depends on X86 && BACKLIGHT_CLASS_DEVICE
Andreas Herrmann03e2bf22007-09-17 23:41:05 +0200213 depends on INPUT
Zhang Rui63c4ec92008-04-21 16:07:13 +0800214 select THERMAL
Linus Torvalds1da177e2005-04-16 15:20:36 -0700215 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700216 This driver implements the ACPI Extensions For Display Adapters
Linus Torvalds1da177e2005-04-16 15:20:36 -0700217 for integrated graphics devices on motherboard, as specified in
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700218 ACPI 2.0 Specification, Appendix B. This supports basic operations
219 such as defining the video POST device, retrieving EDID information,
220 and setting up a video output.
221
222 To compile this driver as a module, choose M here:
223 the module will be called video.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700224
225config ACPI_FAN
226 tristate "Fan"
Zhang Ruid8054742014-06-19 15:43:29 +0800227 depends on THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400228 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700230 This driver supports ACPI fan devices, allowing user-mode
Linus Torvalds1da177e2005-04-16 15:20:36 -0700231 applications to perform basic fan control (on, off, status).
232
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700233 To compile this driver as a module, choose M here:
234 the module will be called fan.
235
Rafael J. Wysocki95c513e2018-03-16 13:51:01 +0100236config ACPI_TAD
237 tristate "ACPI Time and Alarm (TAD) Device Support"
238 depends on SYSFS && PM_SLEEP
239 help
240 The ACPI Time and Alarm (TAD) device is an alternative to the Real
241 Time Clock (RTC). Its wake timers allow the system to transition from
242 the S3 (or optionally S4/S5) state to S0 state after a time period
243 elapses. In comparison with the RTC Alarm, the TAD provides a larger
244 scale of flexibility in the wake timers. The time capabilities of the
245 TAD maintain the time of day information across platform power
246 transitions, and keep track of time even when the platform is turned
247 off.
248
Len Brownc8f7a622006-07-09 17:22:28 -0400249config ACPI_DOCK
Shaohua Li898b0542008-09-27 11:10:28 +0800250 bool "Dock"
Len Brownc8f7a622006-07-09 17:22:28 -0400251 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700252 This driver supports ACPI-controlled docking stations and removable
253 drive bays such as the IBM Ultrabay and the Dell Module Bay.
Kristen Carlson Accardi01b57e72006-10-20 14:30:25 -0700254
Ashwin Chaugule239708a2015-08-05 09:40:25 -0400255config ACPI_CPU_FREQ_PSS
256 bool
257 select THERMAL
258
Sudeep Holla35ae7132016-07-19 18:52:53 +0100259config ACPI_PROCESSOR_CSTATE
260 def_bool y
Rafael J. Wysocki239ed062019-12-16 12:07:01 +0100261 depends on ACPI_PROCESSOR
Sudeep Holla35ae7132016-07-19 18:52:53 +0100262 depends on IA64 || X86
263
Ashwin Chaugule5f055862015-08-05 09:40:26 -0400264config ACPI_PROCESSOR_IDLE
265 bool
266 select CPU_IDLE
267
Tomasz Nowicki935c7602016-06-10 21:55:13 +0200268config ACPI_MCFG
269 bool
270
Ashwin Chaugule337aadf2015-10-02 10:01:19 -0400271config ACPI_CPPC_LIB
272 bool
273 depends on ACPI_PROCESSOR
Ashwin Chaugule337aadf2015-10-02 10:01:19 -0400274 select MAILBOX
275 select PCC
276 help
277 If this option is enabled, this file implements common functionality
278 to parse CPPC tables as described in the ACPI 5.1+ spec. The
279 routines implemented are meant to be used by other
280 drivers to control CPU performance using CPPC semantics.
281 If your platform does not support CPPC in firmware,
282 leave this option disabled.
283
Linus Torvalds1da177e2005-04-16 15:20:36 -0700284config ACPI_PROCESSOR
285 tristate "Processor"
Huacai Chenb1121e22021-07-05 20:42:04 +0800286 depends on X86 || IA64 || ARM64 || LOONGARCH
Sudeep Holla8fc85c62016-07-19 18:52:59 +0100287 select ACPI_PROCESSOR_IDLE
Huacai Chenb1121e22021-07-05 20:42:04 +0800288 select ACPI_CPU_FREQ_PSS if X86 || IA64 || LOONGARCH
Len Brown07fefe42005-08-25 12:22:04 -0400289 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700290 help
Ashwin Chaugule239708a2015-08-05 09:40:25 -0400291 This driver adds support for the ACPI Processor package. It is required
292 by several flavors of cpufreq performance-state, thermal, throttling and
293 idle drivers.
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700294
295 To compile this driver as a module, choose M here:
296 the module will be called processor.
Lv Zheng4b88e332013-09-13 13:14:51 +0800297
Zhao Yakuie92b2972010-12-08 10:10:18 +0800298config ACPI_IPMI
299 tristate "IPMI"
Sinan Kaya50121be2017-03-25 10:02:54 -0400300 depends on IPMI_HANDLER
Zhao Yakuie92b2972010-12-08 10:10:18 +0800301 help
302 This driver enables the ACPI to access the BMC controller. And it
303 uses the IPMI request/response message to communicate with BMC
304 controller, which can be found on on the server.
305
306 To compile this driver as a module, choose M here:
307 the module will be called as acpi_ipmi.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700308
309config ACPI_HOTPLUG_CPU
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400310 bool
Kees Cookf756f282013-01-16 18:53:28 -0800311 depends on ACPI_PROCESSOR && HOTPLUG_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700312 select ACPI_CONTAINER
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400313 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700314
Shaohua Li8e0af512009-07-27 18:11:02 -0400315config ACPI_PROCESSOR_AGGREGATOR
316 tristate "Processor Aggregator"
317 depends on ACPI_PROCESSOR
Len Brownd91f79e2009-09-27 02:35:55 -0400318 depends on X86
Shaohua Li8e0af512009-07-27 18:11:02 -0400319 help
320 ACPI 4.0 defines processor Aggregator, which enables OS to perform
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200321 specific processor configuration and control that applies to all
Shaohua Li8e0af512009-07-27 18:11:02 -0400322 processors in the platform. Currently only logical processor idling
323 is defined, which is to reduce power consumption. This driver
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200324 supports the new device.
Shaohua Li8e0af512009-07-27 18:11:02 -0400325
Linus Torvalds1da177e2005-04-16 15:20:36 -0700326config ACPI_THERMAL
327 tristate "Thermal Zone"
328 depends on ACPI_PROCESSOR
Zhang Rui3f655ef2008-01-17 15:51:11 +0800329 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400330 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700331 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700332 This driver supports ACPI thermal zones. Most mobile and
Linus Torvalds1da177e2005-04-16 15:20:36 -0700333 some desktop systems support ACPI thermal zones. It is HIGHLY
334 recommended that this option be enabled, as your processor(s)
335 may be damaged without it.
336
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700337 To compile this driver as a module, choose M here:
338 the module will be called thermal.
339
Mark Pearsona2ff95e2020-12-29 19:18:26 -0500340config ACPI_PLATFORM_PROFILE
Maximilian Luz21f05a42021-02-11 21:17:00 +0100341 tristate
Mark Pearsona2ff95e2020-12-29 19:18:26 -0500342
Randy Dunlap7ce95732008-02-22 11:25:04 -0800343config ACPI_CUSTOM_DSDT_FILE
344 string "Custom DSDT Table file to include"
345 default ""
Linus Torvalds1da177e2005-04-16 15:20:36 -0700346 depends on !STANDALONE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700347 help
Len Brownd89e9d62008-02-06 19:28:02 -0500348 This option supports a custom DSDT by linking it into the kernel.
Mauro Carvalho Chehabcb1aaeb2019-06-07 15:54:32 -0300349 See Documentation/admin-guide/acpi/dsdt-override.rst
Len Brownd89e9d62008-02-06 19:28:02 -0500350
Uwe Zeisbergerc30fe7f2006-03-24 18:23:14 +0100351 Enter the full path name to the file which includes the AmlCode
Wang Dongsheng82e4eb42018-11-13 18:46:23 +0800352 or dsdt_aml_code declaration.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700353
Randy Dunlap7ce95732008-02-22 11:25:04 -0800354 If unsure, don't enter a file name.
355
356config ACPI_CUSTOM_DSDT
357 bool
358 default ACPI_CUSTOM_DSDT_FILE != ""
359
Aleksey Makarov91dda512016-06-20 13:56:12 +0300360config ARCH_HAS_ACPI_TABLE_UPGRADE
361 def_bool n
362
Lv Zheng5d881322016-04-11 10:13:33 +0800363config ACPI_TABLE_UPGRADE
364 bool "Allow upgrading ACPI tables via initrd"
Aleksey Makarov91dda512016-06-20 13:56:12 +0300365 depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
Lv Zheng5d881322016-04-11 10:13:33 +0800366 default y
Thomas Renninger53aac442012-10-01 00:23:54 +0200367 help
Lv Zheng5d881322016-04-11 10:13:33 +0800368 This option provides functionality to upgrade arbitrary ACPI tables
Thomas Renninger53aac442012-10-01 00:23:54 +0200369 via initrd. No functional change if no ACPI tables are passed via
370 initrd, therefore it's safe to say Y.
Mauro Carvalho Chehabcb1aaeb2019-06-07 15:54:32 -0300371 See Documentation/admin-guide/acpi/initrd_table_override.rst for details
Thomas Renninger53aac442012-10-01 00:23:54 +0200372
Shunyong Yang98a455d2018-12-18 14:02:45 +0800373config ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
374 bool "Override ACPI tables from built-in initrd"
375 depends on ACPI_TABLE_UPGRADE
Robert Richterd2cbbf12021-07-15 11:26:01 +0200376 depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION_NONE
Shunyong Yang98a455d2018-12-18 14:02:45 +0800377 help
378 This option provides functionality to override arbitrary ACPI tables
379 from built-in uncompressed initrd.
380
Mauro Carvalho Chehabcb1aaeb2019-06-07 15:54:32 -0300381 See Documentation/admin-guide/acpi/initrd_table_override.rst for details
Shunyong Yang98a455d2018-12-18 14:02:45 +0800382
Linus Torvalds1da177e2005-04-16 15:20:36 -0700383config ACPI_DEBUG
384 bool "Debug Statements"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700385 help
Bjorn Helgaasa0d84a92008-11-07 16:58:05 -0700386 The ACPI subsystem can produce debug output. Saying Y enables this
387 output and increases the kernel size by around 50K.
388
389 Use the acpi.debug_layer and acpi.debug_level kernel command-line
Mauro Carvalho Chehabcb1aaeb2019-06-07 15:54:32 -0300390 parameters documented in Documentation/firmware-guide/acpi/debug.rst and
Mauro Carvalho Chehab8c27ceff32016-10-18 10:12:27 -0200391 Documentation/admin-guide/kernel-parameters.rst to control the type and
Bjorn Helgaasa0d84a92008-11-07 16:58:05 -0700392 amount of debug output.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700393
Alex Chiang8344b562008-06-10 15:30:42 -0600394config ACPI_PCI_SLOT
Jiang Liuab1a2e02013-01-19 00:07:42 +0800395 bool "PCI slot detection driver"
Sinan Kaya5c6a1172018-12-19 22:46:59 +0000396 depends on SYSFS && PCI
Alex Chiang8344b562008-06-10 15:30:42 -0600397 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700398 This driver creates entries in /sys/bus/pci/slots/ for all PCI
399 slots in the system. This can help correlate PCI bus addresses,
400 i.e., segment/bus/device/function tuples, with physical slots in
401 the system. If you are unsure, say N.
402
Linus Torvalds1da177e2005-04-16 15:20:36 -0700403config ACPI_CONTAINER
Linus Torvalds06991c22013-02-21 12:05:51 -0800404 bool "Container and Module Devices"
Paul Bolleea6a4582013-03-11 10:53:48 +0000405 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700406 help
407 This driver supports ACPI Container and Module devices (IDs
408 ACPI0004, PNP0A05, and PNP0A06).
Keiichiro Tokunaga45b1b192005-03-02 00:00:00 -0500409
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700410 This helps support hotplug of nodes, CPUs, and memory.
411
Linus Torvalds1da177e2005-04-16 15:20:36 -0700412config ACPI_HOTPLUG_MEMORY
Rafael J. Wysocki0a347642013-03-03 23:18:03 +0100413 bool "Memory Hotplug"
Yasunori Gotobc02af92006-06-27 02:53:30 -0700414 depends on MEMORY_HOTPLUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700415 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700416 This driver supports ACPI memory hotplug. The driver
417 fields notifications on ACPI memory devices (PNP0C80),
418 which represent memory ranges that may be onlined or
419 offlined during runtime.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700420
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700421 If your hardware and firmware do not support adding or
422 removing memory devices at runtime, you need not enable
423 this driver.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700424
Jiang Liuc1836192015-02-05 13:44:49 +0800425config ACPI_HOTPLUG_IOAPIC
426 bool
427 depends on PCI
428 depends on X86_IO_APIC
429 default y
430
Rich Townsend3f86b832006-07-01 11:36:54 -0400431config ACPI_SBS
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400432 tristate "Smart Battery System"
Vladimir Lebedevb4150fc2007-03-19 17:45:50 +0300433 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +0800434 select POWER_SUPPLY
Rich Townsend3f86b832006-07-01 11:36:54 -0400435 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700436 This driver supports the Smart Battery System, another
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400437 type of access to battery information, found on some laptops.
Rich Townsend3f86b832006-07-01 11:36:54 -0400438
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700439 To compile this driver as a module, choose M here:
440 the modules will be called sbs and sbshc.
441
Huang Ying801eab82010-05-18 14:35:17 +0800442config ACPI_HED
443 tristate "Hardware Error Device"
444 help
445 This driver supports the Hardware Error Device (PNP0C33),
446 which is used to report some hardware errors notified via
447 SCI, mainly the corrected errors.
448
Thomas Renninger526b4af2011-05-26 12:26:24 +0200449config ACPI_CUSTOM_METHOD
450 tristate "Allow ACPI methods to be inserted/replaced at run time"
451 depends on DEBUG_FS
Thomas Renninger526b4af2011-05-26 12:26:24 +0200452 help
Justin P. Mattockbd1b2a52012-01-03 08:49:48 -0800453 This debug facility allows ACPI AML methods to be inserted and/or
Thomas Renninger526b4af2011-05-26 12:26:24 +0200454 replaced without rebooting the system. For details refer to:
Mauro Carvalho Chehabcb1aaeb2019-06-07 15:54:32 -0300455 Documentation/firmware-guide/acpi/method-customizing.rst.
Thomas Renninger526b4af2011-05-26 12:26:24 +0200456
457 NOTE: This option is security sensitive, because it allows arbitrary
458 kernel memory to be written to by root (uid=0) users, allowing them
459 to bypass certain security measures (e.g. if root is not allowed to
460 load additional kernel modules after boot, this feature may be used
461 to override that restriction).
462
Matthew Garrettd1ff4b12012-01-31 13:19:20 -0500463config ACPI_BGRT
Josh Triplett2223af32012-09-28 17:57:05 -0700464 bool "Boottime Graphics Resource Table support"
Bhupesh Sharma6e7300c2017-04-04 17:02:41 +0100465 depends on EFI && (X86 || ARM64)
Krzysztof Kozlowskifeb17402019-11-20 21:43:10 +0800466 help
Matthew Garrettd1ff4b12012-01-31 13:19:20 -0500467 This driver adds support for exposing the ACPI Boottime Graphics
468 Resource Table, which allows the operating system to obtain
469 data from the firmware boot splash. It will appear under
470 /sys/firmware/acpi/bgrt/ .
471
Al Stoneaf1ae782014-01-17 11:51:30 -0700472config ACPI_REDUCED_HARDWARE_ONLY
473 bool "Hardware-reduced ACPI support only" if EXPERT
474 def_bool n
Al Stoneaf1ae782014-01-17 11:51:30 -0700475 help
Hanjun Guo99a33ff2014-11-14 17:44:07 +0800476 This config item changes the way the ACPI code is built. When this
477 option is selected, the kernel will use a specialized version of
478 ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
479 resulting kernel will be smaller but it will also be restricted to
480 running in ACPI reduced hardware mode ONLY.
Al Stoneaf1ae782014-01-17 11:51:30 -0700481
Hanjun Guo99a33ff2014-11-14 17:44:07 +0800482 If you are unsure what to do, do not enable this option.
Al Stoneaf1ae782014-01-17 11:51:30 -0700483
Dan Williamsbdf97012016-07-23 21:24:19 -0700484source "drivers/acpi/nfit/Kconfig"
Dan Williamsc710fcc2019-11-06 17:42:55 -0800485source "drivers/acpi/numa/Kconfig"
Huang Yinga643ce22010-05-18 14:35:12 +0800486source "drivers/acpi/apei/Kconfig"
Srinivas Pandruvada6256ebd2016-07-17 13:45:32 -0700487source "drivers/acpi/dptf/Kconfig"
Huang Yinga643ce22010-05-18 14:35:12 +0800488
Mika Westerberg058dfc72016-09-20 15:30:51 +0300489config ACPI_WATCHDOG
490 bool
491
Chen, Gong4b3db702013-10-21 14:29:25 -0700492config ACPI_EXTLOG
493 tristate "Extended Error Log support"
Borislav Petkov96139162017-02-03 14:17:43 +0100494 depends on X86_MCE && X86_LOCAL_APIC && EDAC
Luck, Tony7ea6c6c2013-10-28 14:06:55 -0700495 select UEFI_CPER
Chen, Gong4b3db702013-10-21 14:29:25 -0700496 help
497 Certain usages such as Predictive Failure Analysis (PFA) require
498 more information about the error than what can be described in
499 processor machine check banks. Most server processors log
500 additional information about the error in processor uncore
501 registers. Since the addresses and layout of these registers vary
502 widely from one processor to another, system software cannot
503 readily make use of them. To complicate matters further, some of
504 the additional error information cannot be constructed without
505 detailed knowledge about platform topology.
506
507 Enhanced MCA Logging allows firmware to provide additional error
508 information to system software, synchronous with MCE or CMCI. This
Chen, Gong2dfb7d52014-06-17 22:33:07 -0400509 driver adds support for that functionality with corresponding
510 tracepoint which carries that information to userspace.
Chen, Gong4b3db702013-10-21 14:29:25 -0700511
Tony Luck4cf841e32018-10-15 16:11:31 -0700512config ACPI_ADXL
513 bool
514
Octavian Purdila0bf54fc2016-07-08 19:13:13 +0300515config ACPI_CONFIGFS
516 tristate "ACPI configfs support"
517 select CONFIGFS_FS
518 help
519 Select this option to enable support for ACPI configuration from
520 userspace. The configurable ACPI groups will be visible under
521 /config/acpi, assuming configfs is mounted under /config.
522
Chen Yu0db89fa2021-12-22 12:31:41 +0800523config ACPI_PFRUT
524 tristate "ACPI Platform Firmware Runtime Update and Telemetry"
525 depends on 64BIT
526 help
527 This mechanism allows certain pieces of the platform firmware
528 to be updated on the fly while the system is running (runtime)
529 without the need to restart it, which is key in the cases when
530 the system needs to be available 100% of the time and it cannot
531 afford the downtime related to restarting it, or when the work
532 carried out by the system is particularly important, so it cannot
533 be interrupted, and it is not practical to wait until it is complete.
534
535 The existing firmware code can be modified (driver update) or
536 extended by adding new code to the firmware (code injection).
537
Chen Yub0013e02021-12-22 12:32:02 +0800538 Besides, the telemetry driver allows user space to fetch telemetry
539 data from the firmware with the help of the Platform Firmware Runtime
540 Telemetry interface.
541
542 To compile the drivers as modules, choose M here:
543 the modules will be called pfr_update and pfr_telemetry.
Chen Yu0db89fa2021-12-22 12:31:41 +0800544
Tomasz Nowicki88ef16d2016-09-12 20:54:20 +0200545if ARM64
546source "drivers/acpi/arm64/Kconfig"
Jeremy Linton0ce82232018-05-11 18:58:01 -0500547
548config ACPI_PPTT
549 bool
Tomasz Nowicki88ef16d2016-09-12 20:54:20 +0200550endif
551
Sudeep Holla77e2a042022-01-04 19:51:08 +0000552config ACPI_PCC
553 bool "ACPI PCC Address Space"
554 depends on PCC
555 default y
556 help
557 The PCC Address Space also referred as PCC Operation Region pertains
558 to the region of PCC subspace that succeeds the PCC signature.
559
560 The PCC Operation Region works in conjunction with the PCC Table
561 (Platform Communications Channel Table). PCC subspaces that are
562 marked for use as PCC Operation Regions must not be used as PCC
563 subspaces for the standard ACPI features such as CPPC, RASF, PDTT and
564 MPST. These standard features must always use the PCC Table instead.
565
566 Enable this feature if you want to set up and install the PCC Address
567 Space handler to handle PCC OpRegion in the firmware.
568
Andy Shevchenkofa870502020-08-14 16:27:25 +0300569source "drivers/acpi/pmic/Kconfig"
570
Jean-Philippe Brucker3cf48552021-06-18 17:20:58 +0200571config ACPI_VIOT
572 bool
573
Linus Torvalds1da177e2005-04-16 15:20:36 -0700574endif # ACPI
Jan Kiszka87e65d02017-11-27 09:11:48 +0100575
576config X86_PM_TIMER
577 bool "Power Management Timer Support" if EXPERT
578 depends on X86 && (ACPI || JAILHOUSE_GUEST)
579 default y
580 help
581 The Power Management Timer is available on all ACPI-capable,
582 in most cases even if ACPI is unusable or blacklisted.
583
584 This timing source is not affected by power management features
585 like aggressive processor idling, throttling, frequency and/or
586 voltage scaling, unlike the commonly used Time Stamp Counter
587 (TSC) timing source.
588
589 You should nearly always say Y here because many modern
590 systems require this timer.
Erik Kanedacefc7ca2021-06-09 20:41:52 -0700591
592config ACPI_PRMT
593 bool "Platform Runtime Mechanism Support"
594 depends on EFI && X86_64
595 default y
Rafael J. Wysocki9b52363b92021-07-01 18:34:52 +0200596 help
597 Platform Runtime Mechanism (PRM) is a firmware interface exposing a
598 set of binary executables that can be called from the AML interpreter
599 or directly from device drivers.
600
601 Say Y to enable the AML interpreter to execute the PRM code.
602
603 While this feature is optional in principle, leaving it out may
604 substantially increase computational overhead related to the
605 initialization of some server systems.