| # SPDX-License-Identifier: GPL-2.0-only | 
 | # | 
 | # For a description of the syntax of this configuration file, | 
 | # see Documentation/kbuild/kconfig-language.txt. | 
 | # | 
 |  | 
 | menu "Firmware Drivers" | 
 |  | 
 | config ARM_SCMI_PROTOCOL | 
 | 	bool "ARM System Control and Management Interface (SCMI) Message Protocol" | 
 | 	depends on ARM || ARM64 || COMPILE_TEST | 
 | 	depends on MAILBOX | 
 | 	help | 
 | 	  ARM System Control and Management Interface (SCMI) protocol is a | 
 | 	  set of operating system-independent software interfaces that are | 
 | 	  used in system management. SCMI is extensible and currently provides | 
 | 	  interfaces for: Discovery and self-description of the interfaces | 
 | 	  it supports, Power domain management which is the ability to place | 
 | 	  a given device or domain into the various power-saving states that | 
 | 	  it supports, Performance management which is the ability to control | 
 | 	  the performance of a domain that is composed of compute engines | 
 | 	  such as application processors and other accelerators, Clock | 
 | 	  management which is the ability to set and inquire rates on platform | 
 | 	  managed clocks and Sensor management which is the ability to read | 
 | 	  sensor data, and be notified of sensor value. | 
 |  | 
 | 	  This protocol library provides interface for all the client drivers | 
 | 	  making use of the features offered by the SCMI. | 
 |  | 
 | config ARM_SCMI_POWER_DOMAIN | 
 | 	tristate "SCMI power domain driver" | 
 | 	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) | 
 | 	default y | 
 | 	select PM_GENERIC_DOMAINS if PM | 
 | 	help | 
 | 	  This enables support for the SCMI power domains which can be | 
 | 	  enabled or disabled via the SCP firmware | 
 |  | 
 | 	  This driver can also be built as a module.  If so, the module | 
 | 	  will be called scmi_pm_domain. Note this may needed early in boot | 
 | 	  before rootfs may be available. | 
 |  | 
 | config ARM_SCPI_PROTOCOL | 
 | 	tristate "ARM System Control and Power Interface (SCPI) Message Protocol" | 
 | 	depends on ARM || ARM64 || COMPILE_TEST | 
 | 	depends on MAILBOX | 
 | 	help | 
 | 	  System Control and Power Interface (SCPI) Message Protocol is | 
 | 	  defined for the purpose of communication between the Application | 
 | 	  Cores(AP) and the System Control Processor(SCP). The MHU peripheral | 
 | 	  provides a mechanism for inter-processor communication between SCP | 
 | 	  and AP. | 
 |  | 
 | 	  SCP controls most of the power managament on the Application | 
 | 	  Processors. It offers control and management of: the core/cluster | 
 | 	  power states, various power domain DVFS including the core/cluster, | 
 | 	  certain system clocks configuration, thermal sensors and many | 
 | 	  others. | 
 |  | 
 | 	  This protocol library provides interface for all the client drivers | 
 | 	  making use of the features offered by the SCP. | 
 |  | 
 | config ARM_SCPI_POWER_DOMAIN | 
 | 	tristate "SCPI power domain driver" | 
 | 	depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF) | 
 | 	default y | 
 | 	select PM_GENERIC_DOMAINS if PM | 
 | 	help | 
 | 	  This enables support for the SCPI power domains which can be | 
 | 	  enabled or disabled via the SCP firmware | 
 |  | 
 | config ARM_SDE_INTERFACE | 
 | 	bool "ARM Software Delegated Exception Interface (SDEI)" | 
 | 	depends on ARM64 | 
 | 	help | 
 | 	  The Software Delegated Exception Interface (SDEI) is an ARM | 
 | 	  standard for registering callbacks from the platform firmware | 
 | 	  into the OS. This is typically used to implement RAS notifications. | 
 |  | 
 | config EDD | 
 | 	tristate "BIOS Enhanced Disk Drive calls determine boot disk" | 
 | 	depends on X86 | 
 | 	help | 
 | 	  Say Y or M here if you want to enable BIOS Enhanced Disk Drive | 
 | 	  Services real mode BIOS calls to determine which disk | 
 | 	  BIOS tries boot from.  This information is then exported via sysfs. | 
 |  | 
 | 	  This option is experimental and is known to fail to boot on some | 
 |           obscure configurations. Most disk controller BIOS vendors do | 
 |           not yet implement this feature. | 
 |  | 
 | config EDD_OFF | 
 | 	bool "Sets default behavior for EDD detection to off" | 
 | 	depends on EDD | 
 | 	default n | 
 | 	help | 
 | 	  Say Y if you want EDD disabled by default, even though it is compiled into the | 
 | 	  kernel. Say N if you want EDD enabled by default. EDD can be dynamically set | 
 | 	  using the kernel parameter 'edd={on|skipmbr|off}'. | 
 |  | 
 | config FIRMWARE_MEMMAP | 
 |     bool "Add firmware-provided memory map to sysfs" if EXPERT | 
 |     default X86 | 
 |     help | 
 |       Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. | 
 |       That memory map is used for example by kexec to set up parameter area | 
 |       for the next kernel, but can also be used for debugging purposes. | 
 |  | 
 |       See also Documentation/ABI/testing/sysfs-firmware-memmap. | 
 |  | 
 | config EFI_PCDP | 
 | 	bool "Console device selection via EFI PCDP or HCDP table" | 
 | 	depends on ACPI && EFI && IA64 | 
 | 	default y if IA64 | 
 | 	help | 
 | 	  If your firmware supplies the PCDP table, and you want to | 
 | 	  automatically use the primary console device it describes | 
 | 	  as the Linux console, say Y here. | 
 |  | 
 | 	  If your firmware supplies the HCDP table, and you want to | 
 | 	  use the first serial port it describes as the Linux console, | 
 | 	  say Y here.  If your EFI ConOut path contains only a UART | 
 | 	  device, it will become the console automatically.  Otherwise, | 
 | 	  you must specify the "console=hcdp" kernel boot argument. | 
 |  | 
 | 	  Neither the PCDP nor the HCDP affects naming of serial devices, | 
 | 	  so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending | 
 | 	  on how the driver discovers devices. | 
 |  | 
 | 	  You must also enable the appropriate drivers (serial, VGA, etc.) | 
 |  | 
 | 	  See DIG64_HCDPv20_042804.pdf available from | 
 | 	  <http://www.dig64.org/specifications/>  | 
 |  | 
 | config DMIID | 
 |     bool "Export DMI identification via sysfs to userspace" | 
 |     depends on DMI | 
 |     default y | 
 | 	help | 
 | 	  Say Y here if you want to query SMBIOS/DMI system identification | 
 | 	  information from userspace through /sys/class/dmi/id/ or if you want | 
 | 	  DMI-based module auto-loading. | 
 |  | 
 | config DMI_SYSFS | 
 | 	tristate "DMI table support in sysfs" | 
 | 	depends on SYSFS && DMI | 
 | 	default n | 
 | 	help | 
 | 	  Say Y or M here to enable the exporting of the raw DMI table | 
 | 	  data via sysfs.  This is useful for consuming the data without | 
 | 	  requiring any access to /dev/mem at all.  Tables are found | 
 | 	  under /sys/firmware/dmi when this option is enabled and | 
 | 	  loaded. | 
 |  | 
 | config DMI_SCAN_MACHINE_NON_EFI_FALLBACK | 
 | 	bool | 
 |  | 
 | config ISCSI_IBFT_FIND | 
 | 	bool "iSCSI Boot Firmware Table Attributes" | 
 | 	depends on X86 && ACPI | 
 | 	default n | 
 | 	help | 
 | 	  This option enables the kernel to find the region of memory | 
 | 	  in which the ISCSI Boot Firmware Table (iBFT) resides. This | 
 | 	  is necessary for iSCSI Boot Firmware Table Attributes module to work | 
 | 	  properly. | 
 |  | 
 | config ISCSI_IBFT | 
 | 	tristate "iSCSI Boot Firmware Table Attributes module" | 
 | 	select ISCSI_BOOT_SYSFS | 
 | 	depends on ISCSI_IBFT_FIND && SCSI && SCSI_LOWLEVEL | 
 | 	default	n | 
 | 	help | 
 | 	  This option enables support for detection and exposing of iSCSI | 
 | 	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to | 
 | 	  detect iSCSI boot parameters dynamically during system boot, say Y. | 
 | 	  Otherwise, say N. | 
 |  | 
 | config RASPBERRYPI_FIRMWARE | 
 | 	tristate "Raspberry Pi Firmware Driver" | 
 | 	depends on BCM2835_MBOX | 
 | 	help | 
 | 	  This option enables support for communicating with the firmware on the | 
 | 	  Raspberry Pi. | 
 |  | 
 | config FW_CFG_SYSFS | 
 | 	tristate "QEMU fw_cfg device support in sysfs" | 
 | 	depends on SYSFS && (ARM || ARM64 || PPC_PMAC || SPARC || X86) | 
 | 	depends on HAS_IOPORT_MAP | 
 | 	default n | 
 | 	help | 
 | 	  Say Y or M here to enable the exporting of the QEMU firmware | 
 | 	  configuration (fw_cfg) file entries via sysfs. Entries are | 
 | 	  found under /sys/firmware/fw_cfg when this option is enabled | 
 | 	  and loaded. | 
 |  | 
 | config FW_CFG_SYSFS_CMDLINE | 
 | 	bool "QEMU fw_cfg device parameter parsing" | 
 | 	depends on FW_CFG_SYSFS | 
 | 	help | 
 | 	  Allow the qemu_fw_cfg device to be initialized via the kernel | 
 | 	  command line or using a module parameter. | 
 | 	  WARNING: Using incorrect parameters (base address in particular) | 
 | 	  may crash your system. | 
 |  | 
 | config INTEL_STRATIX10_SERVICE | 
 | 	tristate "Intel Stratix10 Service Layer" | 
 | 	depends on ARCH_STRATIX10 && HAVE_ARM_SMCCC | 
 | 	default n | 
 | 	help | 
 | 	  Intel Stratix10 service layer runs at privileged exception level, | 
 | 	  interfaces with the service providers (FPGA manager is one of them) | 
 | 	  and manages secure monitor call to communicate with secure monitor | 
 | 	  software at secure monitor exception level. | 
 |  | 
 | 	  Say Y here if you want Stratix10 service layer support. | 
 |  | 
 | config QCOM_SCM | 
 | 	bool | 
 | 	depends on ARM || ARM64 | 
 | 	select RESET_CONTROLLER | 
 |  | 
 | config QCOM_SCM_32 | 
 | 	def_bool y | 
 | 	depends on QCOM_SCM && ARM | 
 |  | 
 | config QCOM_SCM_64 | 
 | 	def_bool y | 
 | 	depends on QCOM_SCM && ARM64 | 
 |  | 
 | config QCOM_SCM_DOWNLOAD_MODE_DEFAULT | 
 | 	bool "Qualcomm download mode enabled by default" | 
 | 	depends on QCOM_SCM | 
 | 	help | 
 | 	  A device with "download mode" enabled will upon an unexpected | 
 | 	  warm-restart enter a special debug mode that allows the user to | 
 | 	  "download" memory content over USB for offline postmortem analysis. | 
 | 	  The feature can be enabled/disabled on the kernel command line. | 
 |  | 
 | 	  Say Y here to enable "download mode" by default. | 
 |  | 
 | config TI_SCI_PROTOCOL | 
 | 	tristate "TI System Control Interface (TISCI) Message Protocol" | 
 | 	depends on TI_MESSAGE_MANAGER | 
 | 	help | 
 | 	  TI System Control Interface (TISCI) Message Protocol is used to manage | 
 | 	  compute systems such as ARM, DSP etc with the system controller in | 
 | 	  complex System on Chip(SoC) such as those found on certain keystone | 
 | 	  generation SoC from TI. | 
 |  | 
 | 	  System controller provides various facilities including power | 
 | 	  management function support. | 
 |  | 
 | 	  This protocol library is used by client drivers to use the features | 
 | 	  provided by the system controller. | 
 |  | 
 | config TRUSTED_FOUNDATIONS | 
 | 	bool "Trusted Foundations secure monitor support" | 
 | 	depends on ARM | 
 | 	help | 
 | 	  Some devices (including most early Tegra-based consumer devices on | 
 | 	  the market) are booted with the Trusted Foundations secure monitor | 
 | 	  active, requiring some core operations to be performed by the secure | 
 | 	  monitor instead of the kernel. | 
 |  | 
 | 	  This option allows the kernel to invoke the secure monitor whenever | 
 | 	  required on devices using Trusted Foundations. See the functions and | 
 | 	  comments in linux/firmware/trusted_foundations.h or the device tree | 
 | 	  bindings for "tlm,trusted-foundations" for details on how to use it. | 
 |  | 
 | 	  Choose N if you don't know what this is about. | 
 |  | 
 | config HAVE_ARM_SMCCC | 
 | 	bool | 
 |  | 
 | source "drivers/firmware/psci/Kconfig" | 
 | source "drivers/firmware/broadcom/Kconfig" | 
 | source "drivers/firmware/google/Kconfig" | 
 | source "drivers/firmware/efi/Kconfig" | 
 | source "drivers/firmware/imx/Kconfig" | 
 | source "drivers/firmware/meson/Kconfig" | 
 | source "drivers/firmware/tegra/Kconfig" | 
 | source "drivers/firmware/xilinx/Kconfig" | 
 |  | 
 | endmenu |