cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Kconfig (19901B)


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