forked from Minki/linux
0ce8223223
Now that we have a PPTT parser, in preparation for its use on arm64, lets build it. Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Tested-by: Vijaya Kumar K <vkilari@codeaurora.org> Tested-by: Xiongfeng Wang <wangxiongfeng2@huawei.com> Tested-by: Tomasz Nowicki <Tomasz.Nowicki@cavium.com> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
588 lines
19 KiB
Plaintext
588 lines
19 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# ACPI Configuration
|
|
#
|
|
|
|
menuconfig ACPI
|
|
bool "ACPI (Advanced Configuration and Power Interface) Support"
|
|
depends on !IA64_HP_SIM
|
|
depends on IA64 || X86 || ARM64
|
|
depends on PCI
|
|
select PNP
|
|
default y if (IA64 || X86)
|
|
help
|
|
Advanced Configuration and Power Interface (ACPI) support for
|
|
Linux requires an ACPI-compliant platform (hardware/firmware),
|
|
and assumes the presence of OS-directed configuration and power
|
|
management (OSPM) software. This option will enlarge your
|
|
kernel by about 70K.
|
|
|
|
Linux ACPI provides a robust functional replacement for several
|
|
legacy configuration and power management interfaces, including
|
|
the Plug-and-Play BIOS specification (PnP BIOS), the
|
|
MultiProcessor Specification (MPS), and the Advanced Power
|
|
Management (APM) specification. If both ACPI and APM support
|
|
are configured, ACPI is used.
|
|
|
|
The project home page for the Linux ACPI subsystem is here:
|
|
<https://01.org/linux-acpi>
|
|
|
|
Linux support for ACPI is based on Intel Corporation's ACPI
|
|
Component Architecture (ACPI CA). For more information on the
|
|
ACPI CA, see:
|
|
<http://acpica.org/>
|
|
|
|
ACPI is an open industry specification originally co-developed by
|
|
Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
|
|
it is developed by the ACPI Specification Working Group (ASWG) under
|
|
the UEFI Forum and any UEFI member can join the ASWG and contribute
|
|
to the ACPI specification.
|
|
The specification is available at:
|
|
<http://www.acpi.info>
|
|
<http://www.uefi.org/acpi/specs>
|
|
|
|
if ACPI
|
|
|
|
config ACPI_LEGACY_TABLES_LOOKUP
|
|
bool
|
|
|
|
config ARCH_MIGHT_HAVE_ACPI_PDC
|
|
bool
|
|
|
|
config ACPI_GENERIC_GSI
|
|
bool
|
|
|
|
config ACPI_SYSTEM_POWER_STATES_SUPPORT
|
|
bool
|
|
|
|
config ACPI_CCA_REQUIRED
|
|
bool
|
|
|
|
config ACPI_DEBUGGER
|
|
bool "AML debugger interface"
|
|
select ACPI_DEBUG
|
|
help
|
|
Enable in-kernel debugging of AML facilities: statistics,
|
|
internal object dump, single step control method execution.
|
|
This is still under development, currently enabling this only
|
|
results in the compilation of the ACPICA debugger files.
|
|
|
|
if ACPI_DEBUGGER
|
|
|
|
config ACPI_DEBUGGER_USER
|
|
tristate "Userspace debugger accessiblity"
|
|
depends on DEBUG_FS
|
|
help
|
|
Export /sys/kernel/debug/acpi/acpidbg for userspace utilities
|
|
to access the debugger functionalities.
|
|
|
|
endif
|
|
|
|
config ACPI_SPCR_TABLE
|
|
bool "ACPI Serial Port Console Redirection Support"
|
|
default y if X86
|
|
help
|
|
Enable support for Serial Port Console Redirection (SPCR) Table.
|
|
This table provides information about the configuration of the
|
|
earlycon console.
|
|
|
|
config ACPI_LPIT
|
|
bool
|
|
depends on X86_64
|
|
default y
|
|
|
|
config ACPI_SLEEP
|
|
bool
|
|
depends on SUSPEND || HIBERNATION
|
|
depends on ACPI_SYSTEM_POWER_STATES_SUPPORT
|
|
default y
|
|
|
|
config ACPI_PROCFS_POWER
|
|
bool "Deprecated power /proc/acpi directories"
|
|
depends on X86 && PROC_FS
|
|
help
|
|
For backwards compatibility, this option allows
|
|
deprecated power /proc/acpi/ directories to exist, even when
|
|
they have been replaced by functions in /sys.
|
|
The deprecated directories (and their replacements) include:
|
|
/proc/acpi/battery/* (/sys/class/power_supply/*) and
|
|
/proc/acpi/ac_adapter/* (sys/class/power_supply/*).
|
|
This option has no effect on /proc/acpi/ directories
|
|
and functions which do not yet exist in /sys.
|
|
This option, together with the proc directories, will be
|
|
deleted in the future.
|
|
|
|
Say N to delete power /proc/acpi/ directories that have moved to /sys.
|
|
|
|
config ACPI_REV_OVERRIDE_POSSIBLE
|
|
bool "Allow supported ACPI revision to be overridden"
|
|
depends on X86
|
|
default y
|
|
help
|
|
The platform firmware on some systems expects Linux to return "5" as
|
|
the supported ACPI revision which makes it expose system configuration
|
|
information in a special way.
|
|
|
|
For example, based on what ACPI exports as the supported revision,
|
|
Dell XPS 13 (2015) configures its audio device to either work in HDA
|
|
mode or in I2S mode, where the former is supposed to be used on Linux
|
|
until the latter is fully supported (in the kernel as well as in user
|
|
space).
|
|
|
|
This option enables a DMI-based quirk for the above Dell machine (so
|
|
that HDA audio is exposed by the platform firmware to the kernel) and
|
|
makes it possible to force the kernel to return "5" as the supported
|
|
ACPI revision via the "acpi_rev_override" command line switch.
|
|
|
|
config ACPI_EC_DEBUGFS
|
|
tristate "EC read/write access through /sys/kernel/debug/ec"
|
|
default n
|
|
help
|
|
Say N to disable Embedded Controller /sys/kernel/debug interface
|
|
|
|
Be aware that using this interface can confuse your Embedded
|
|
Controller in a way that a normal reboot is not enough. You then
|
|
have to power off your system, and remove the laptop battery for
|
|
some seconds.
|
|
An Embedded Controller typically is available on laptops and reads
|
|
sensor values like battery state and temperature.
|
|
The kernel accesses the EC through ACPI parsed code provided by BIOS
|
|
tables. This option allows to access the EC directly without ACPI
|
|
code being involved.
|
|
Thus this option is a debug option that helps to write ACPI drivers
|
|
and can be used to identify ACPI code or EC firmware bugs.
|
|
|
|
config ACPI_AC
|
|
tristate "AC Adapter"
|
|
depends on X86
|
|
select POWER_SUPPLY
|
|
default y
|
|
help
|
|
This driver supports the AC Adapter object, which indicates
|
|
whether a system is on AC or not. If you have a system that can
|
|
switch between A/C and battery, say Y.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called ac.
|
|
|
|
config ACPI_BATTERY
|
|
tristate "Battery"
|
|
depends on X86
|
|
select POWER_SUPPLY
|
|
default y
|
|
help
|
|
This driver adds support for battery information through
|
|
/proc/acpi/battery. If you have a mobile system with a battery,
|
|
say Y.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called battery.
|
|
|
|
config ACPI_BUTTON
|
|
tristate "Button"
|
|
depends on INPUT
|
|
default y
|
|
help
|
|
This driver handles events on the power, sleep, and lid buttons.
|
|
A daemon reads events from input devices or via netlink and
|
|
performs user-defined actions such as shutting down the system.
|
|
This is necessary for software-controlled poweroff.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called button.
|
|
|
|
config ACPI_VIDEO
|
|
tristate "Video"
|
|
depends on X86 && BACKLIGHT_CLASS_DEVICE
|
|
depends on INPUT
|
|
select THERMAL
|
|
help
|
|
This driver implements the ACPI Extensions For Display Adapters
|
|
for integrated graphics devices on motherboard, as specified in
|
|
ACPI 2.0 Specification, Appendix B. This supports basic operations
|
|
such as defining the video POST device, retrieving EDID information,
|
|
and setting up a video output.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called video.
|
|
|
|
config ACPI_FAN
|
|
tristate "Fan"
|
|
depends on THERMAL
|
|
default y
|
|
help
|
|
This driver supports ACPI fan devices, allowing user-mode
|
|
applications to perform basic fan control (on, off, status).
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called fan.
|
|
|
|
config ACPI_TAD
|
|
tristate "ACPI Time and Alarm (TAD) Device Support"
|
|
depends on SYSFS && PM_SLEEP
|
|
help
|
|
The ACPI Time and Alarm (TAD) device is an alternative to the Real
|
|
Time Clock (RTC). Its wake timers allow the system to transition from
|
|
the S3 (or optionally S4/S5) state to S0 state after a time period
|
|
elapses. In comparison with the RTC Alarm, the TAD provides a larger
|
|
scale of flexibility in the wake timers. The time capabilities of the
|
|
TAD maintain the time of day information across platform power
|
|
transitions, and keep track of time even when the platform is turned
|
|
off.
|
|
|
|
config ACPI_DOCK
|
|
bool "Dock"
|
|
help
|
|
This driver supports ACPI-controlled docking stations and removable
|
|
drive bays such as the IBM Ultrabay and the Dell Module Bay.
|
|
|
|
config ACPI_CPU_FREQ_PSS
|
|
bool
|
|
select THERMAL
|
|
|
|
config ACPI_PROCESSOR_CSTATE
|
|
def_bool y
|
|
depends on IA64 || X86
|
|
|
|
config ACPI_PROCESSOR_IDLE
|
|
bool
|
|
select CPU_IDLE
|
|
|
|
config ACPI_MCFG
|
|
bool
|
|
|
|
config ACPI_CPPC_LIB
|
|
bool
|
|
depends on ACPI_PROCESSOR
|
|
select MAILBOX
|
|
select PCC
|
|
help
|
|
If this option is enabled, this file implements common functionality
|
|
to parse CPPC tables as described in the ACPI 5.1+ spec. The
|
|
routines implemented are meant to be used by other
|
|
drivers to control CPU performance using CPPC semantics.
|
|
If your platform does not support CPPC in firmware,
|
|
leave this option disabled.
|
|
|
|
config ACPI_PROCESSOR
|
|
tristate "Processor"
|
|
depends on X86 || IA64 || ARM64
|
|
select ACPI_PROCESSOR_IDLE
|
|
select ACPI_CPU_FREQ_PSS if X86 || IA64
|
|
default y
|
|
help
|
|
This driver adds support for the ACPI Processor package. It is required
|
|
by several flavors of cpufreq performance-state, thermal, throttling and
|
|
idle drivers.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called processor.
|
|
|
|
config ACPI_IPMI
|
|
tristate "IPMI"
|
|
depends on IPMI_HANDLER
|
|
default n
|
|
help
|
|
This driver enables the ACPI to access the BMC controller. And it
|
|
uses the IPMI request/response message to communicate with BMC
|
|
controller, which can be found on on the server.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called as acpi_ipmi.
|
|
|
|
config ACPI_HOTPLUG_CPU
|
|
bool
|
|
depends on ACPI_PROCESSOR && HOTPLUG_CPU
|
|
select ACPI_CONTAINER
|
|
default y
|
|
|
|
config ACPI_PROCESSOR_AGGREGATOR
|
|
tristate "Processor Aggregator"
|
|
depends on ACPI_PROCESSOR
|
|
depends on X86
|
|
help
|
|
ACPI 4.0 defines processor Aggregator, which enables OS to perform
|
|
specific processor configuration and control that applies to all
|
|
processors in the platform. Currently only logical processor idling
|
|
is defined, which is to reduce power consumption. This driver
|
|
supports the new device.
|
|
|
|
config ACPI_THERMAL
|
|
tristate "Thermal Zone"
|
|
depends on ACPI_PROCESSOR
|
|
select THERMAL
|
|
default y
|
|
help
|
|
This driver supports ACPI thermal zones. Most mobile and
|
|
some desktop systems support ACPI thermal zones. It is HIGHLY
|
|
recommended that this option be enabled, as your processor(s)
|
|
may be damaged without it.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called thermal.
|
|
|
|
config ACPI_NUMA
|
|
bool "NUMA support"
|
|
depends on NUMA
|
|
depends on (X86 || IA64 || ARM64)
|
|
default y if IA64_GENERIC || IA64_SGI_SN2 || ARM64
|
|
|
|
config ACPI_CUSTOM_DSDT_FILE
|
|
string "Custom DSDT Table file to include"
|
|
default ""
|
|
depends on !STANDALONE
|
|
help
|
|
This option supports a custom DSDT by linking it into the kernel.
|
|
See Documentation/acpi/dsdt-override.txt
|
|
|
|
Enter the full path name to the file which includes the AmlCode
|
|
declaration.
|
|
|
|
If unsure, don't enter a file name.
|
|
|
|
config ACPI_CUSTOM_DSDT
|
|
bool
|
|
default ACPI_CUSTOM_DSDT_FILE != ""
|
|
|
|
config ARCH_HAS_ACPI_TABLE_UPGRADE
|
|
def_bool n
|
|
|
|
config ACPI_TABLE_UPGRADE
|
|
bool "Allow upgrading ACPI tables via initrd"
|
|
depends on BLK_DEV_INITRD && ARCH_HAS_ACPI_TABLE_UPGRADE
|
|
default y
|
|
help
|
|
This option provides functionality to upgrade arbitrary ACPI tables
|
|
via initrd. No functional change if no ACPI tables are passed via
|
|
initrd, therefore it's safe to say Y.
|
|
See Documentation/acpi/initrd_table_override.txt for details
|
|
|
|
config ACPI_DEBUG
|
|
bool "Debug Statements"
|
|
default n
|
|
help
|
|
The ACPI subsystem can produce debug output. Saying Y enables this
|
|
output and increases the kernel size by around 50K.
|
|
|
|
Use the acpi.debug_layer and acpi.debug_level kernel command-line
|
|
parameters documented in Documentation/acpi/debug.txt and
|
|
Documentation/admin-guide/kernel-parameters.rst to control the type and
|
|
amount of debug output.
|
|
|
|
config ACPI_PCI_SLOT
|
|
bool "PCI slot detection driver"
|
|
depends on SYSFS
|
|
default n
|
|
help
|
|
This driver creates entries in /sys/bus/pci/slots/ for all PCI
|
|
slots in the system. This can help correlate PCI bus addresses,
|
|
i.e., segment/bus/device/function tuples, with physical slots in
|
|
the system. If you are unsure, say N.
|
|
|
|
config ACPI_CONTAINER
|
|
bool "Container and Module Devices"
|
|
default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
|
|
help
|
|
This driver supports ACPI Container and Module devices (IDs
|
|
ACPI0004, PNP0A05, and PNP0A06).
|
|
|
|
This helps support hotplug of nodes, CPUs, and memory.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called container.
|
|
|
|
config ACPI_HOTPLUG_MEMORY
|
|
bool "Memory Hotplug"
|
|
depends on MEMORY_HOTPLUG
|
|
help
|
|
This driver supports ACPI memory hotplug. The driver
|
|
fields notifications on ACPI memory devices (PNP0C80),
|
|
which represent memory ranges that may be onlined or
|
|
offlined during runtime.
|
|
|
|
If your hardware and firmware do not support adding or
|
|
removing memory devices at runtime, you need not enable
|
|
this driver.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the module will be called acpi_memhotplug.
|
|
|
|
config ACPI_HOTPLUG_IOAPIC
|
|
bool
|
|
depends on PCI
|
|
depends on X86_IO_APIC
|
|
default y
|
|
|
|
config ACPI_SBS
|
|
tristate "Smart Battery System"
|
|
depends on X86
|
|
select POWER_SUPPLY
|
|
help
|
|
This driver supports the Smart Battery System, another
|
|
type of access to battery information, found on some laptops.
|
|
|
|
To compile this driver as a module, choose M here:
|
|
the modules will be called sbs and sbshc.
|
|
|
|
config ACPI_HED
|
|
tristate "Hardware Error Device"
|
|
help
|
|
This driver supports the Hardware Error Device (PNP0C33),
|
|
which is used to report some hardware errors notified via
|
|
SCI, mainly the corrected errors.
|
|
|
|
config ACPI_CUSTOM_METHOD
|
|
tristate "Allow ACPI methods to be inserted/replaced at run time"
|
|
depends on DEBUG_FS
|
|
default n
|
|
help
|
|
This debug facility allows ACPI AML methods to be inserted and/or
|
|
replaced without rebooting the system. For details refer to:
|
|
Documentation/acpi/method-customizing.txt.
|
|
|
|
NOTE: This option is security sensitive, because it allows arbitrary
|
|
kernel memory to be written to by root (uid=0) users, allowing them
|
|
to bypass certain security measures (e.g. if root is not allowed to
|
|
load additional kernel modules after boot, this feature may be used
|
|
to override that restriction).
|
|
|
|
config ACPI_BGRT
|
|
bool "Boottime Graphics Resource Table support"
|
|
depends on EFI && (X86 || ARM64)
|
|
help
|
|
This driver adds support for exposing the ACPI Boottime Graphics
|
|
Resource Table, which allows the operating system to obtain
|
|
data from the firmware boot splash. It will appear under
|
|
/sys/firmware/acpi/bgrt/ .
|
|
|
|
config ACPI_REDUCED_HARDWARE_ONLY
|
|
bool "Hardware-reduced ACPI support only" if EXPERT
|
|
def_bool n
|
|
help
|
|
This config item changes the way the ACPI code is built. When this
|
|
option is selected, the kernel will use a specialized version of
|
|
ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
|
|
resulting kernel will be smaller but it will also be restricted to
|
|
running in ACPI reduced hardware mode ONLY.
|
|
|
|
If you are unsure what to do, do not enable this option.
|
|
|
|
source "drivers/acpi/nfit/Kconfig"
|
|
|
|
source "drivers/acpi/apei/Kconfig"
|
|
source "drivers/acpi/dptf/Kconfig"
|
|
|
|
config ACPI_WATCHDOG
|
|
bool
|
|
|
|
config ACPI_EXTLOG
|
|
tristate "Extended Error Log support"
|
|
depends on X86_MCE && X86_LOCAL_APIC && EDAC
|
|
select UEFI_CPER
|
|
default n
|
|
help
|
|
Certain usages such as Predictive Failure Analysis (PFA) require
|
|
more information about the error than what can be described in
|
|
processor machine check banks. Most server processors log
|
|
additional information about the error in processor uncore
|
|
registers. Since the addresses and layout of these registers vary
|
|
widely from one processor to another, system software cannot
|
|
readily make use of them. To complicate matters further, some of
|
|
the additional error information cannot be constructed without
|
|
detailed knowledge about platform topology.
|
|
|
|
Enhanced MCA Logging allows firmware to provide additional error
|
|
information to system software, synchronous with MCE or CMCI. This
|
|
driver adds support for that functionality with corresponding
|
|
tracepoint which carries that information to userspace.
|
|
|
|
menuconfig PMIC_OPREGION
|
|
bool "PMIC (Power Management Integrated Circuit) operation region support"
|
|
help
|
|
Select this option to enable support for ACPI operation
|
|
region of the PMIC chip. The operation region can be used
|
|
to control power rails and sensor reading/writing on the
|
|
PMIC chip.
|
|
|
|
if PMIC_OPREGION
|
|
config CRC_PMIC_OPREGION
|
|
bool "ACPI operation region support for CrystalCove PMIC"
|
|
depends on INTEL_SOC_PMIC
|
|
help
|
|
This config adds ACPI operation region support for CrystalCove PMIC.
|
|
|
|
config XPOWER_PMIC_OPREGION
|
|
bool "ACPI operation region support for XPower AXP288 PMIC"
|
|
depends on MFD_AXP20X_I2C
|
|
help
|
|
This config adds ACPI operation region support for XPower AXP288 PMIC.
|
|
|
|
config BXT_WC_PMIC_OPREGION
|
|
bool "ACPI operation region support for BXT WhiskeyCove PMIC"
|
|
depends on INTEL_SOC_PMIC_BXTWC
|
|
help
|
|
This config adds ACPI operation region support for BXT WhiskeyCove PMIC.
|
|
|
|
config CHT_WC_PMIC_OPREGION
|
|
bool "ACPI operation region support for CHT Whiskey Cove PMIC"
|
|
depends on INTEL_SOC_PMIC_CHTWC
|
|
help
|
|
This config adds ACPI operation region support for CHT Whiskey Cove PMIC.
|
|
|
|
config CHT_DC_TI_PMIC_OPREGION
|
|
bool "ACPI operation region support for Dollar Cove TI PMIC"
|
|
depends on INTEL_SOC_PMIC_CHTDC_TI
|
|
help
|
|
This config adds ACPI operation region support for Dollar Cove TI PMIC.
|
|
|
|
endif
|
|
|
|
config ACPI_CONFIGFS
|
|
tristate "ACPI configfs support"
|
|
select CONFIGFS_FS
|
|
help
|
|
Select this option to enable support for ACPI configuration from
|
|
userspace. The configurable ACPI groups will be visible under
|
|
/config/acpi, assuming configfs is mounted under /config.
|
|
|
|
if ARM64
|
|
source "drivers/acpi/arm64/Kconfig"
|
|
|
|
config ACPI_PPTT
|
|
bool
|
|
endif
|
|
|
|
config TPS68470_PMIC_OPREGION
|
|
bool "ACPI operation region support for TPS68470 PMIC"
|
|
depends on MFD_TPS68470
|
|
help
|
|
This config adds ACPI operation region support for TI TPS68470 PMIC.
|
|
TPS68470 device is an advanced power management unit that powers
|
|
a Compact Camera Module (CCM), generates clocks for image sensors,
|
|
drives a dual LED for flash and incorporates two LED drivers for
|
|
general purpose indicators.
|
|
This driver enables ACPI operation region support control voltage
|
|
regulators and clocks.
|
|
|
|
This option is a bool as it provides an ACPI operation
|
|
region, which must be available before any of the devices
|
|
using this, are probed.
|
|
|
|
endif # ACPI
|
|
|
|
config X86_PM_TIMER
|
|
bool "Power Management Timer Support" if EXPERT
|
|
depends on X86 && (ACPI || JAILHOUSE_GUEST)
|
|
default y
|
|
help
|
|
The Power Management Timer is available on all ACPI-capable,
|
|
in most cases even if ACPI is unusable or blacklisted.
|
|
|
|
This timing source is not affected by power management features
|
|
like aggressive processor idling, throttling, frequency and/or
|
|
voltage scaling, unlike the commonly used Time Stamp Counter
|
|
(TSC) timing source.
|
|
|
|
You should nearly always say Y here because many modern
|
|
systems require this timer.
|