13d0407baSopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
23d0407baSopenharmony_ci#
33d0407baSopenharmony_ci# For a description of the syntax of this configuration file,
43d0407baSopenharmony_ci# see Documentation/kbuild/kconfig-language.rst.
53d0407baSopenharmony_ci#
63d0407baSopenharmony_ci
73d0407baSopenharmony_cimenu "Firmware Drivers"
83d0407baSopenharmony_ci
93d0407baSopenharmony_ciconfig ARM_SCMI_PROTOCOL
103d0407baSopenharmony_ci	tristate "ARM System Control and Management Interface (SCMI) Message Protocol"
113d0407baSopenharmony_ci	depends on ARM || ARM64 || COMPILE_TEST
123d0407baSopenharmony_ci	depends on MAILBOX
133d0407baSopenharmony_ci	help
143d0407baSopenharmony_ci	  ARM System Control and Management Interface (SCMI) protocol is a
153d0407baSopenharmony_ci	  set of operating system-independent software interfaces that are
163d0407baSopenharmony_ci	  used in system management. SCMI is extensible and currently provides
173d0407baSopenharmony_ci	  interfaces for: Discovery and self-description of the interfaces
183d0407baSopenharmony_ci	  it supports, Power domain management which is the ability to place
193d0407baSopenharmony_ci	  a given device or domain into the various power-saving states that
203d0407baSopenharmony_ci	  it supports, Performance management which is the ability to control
213d0407baSopenharmony_ci	  the performance of a domain that is composed of compute engines
223d0407baSopenharmony_ci	  such as application processors and other accelerators, Clock
233d0407baSopenharmony_ci	  management which is the ability to set and inquire rates on platform
243d0407baSopenharmony_ci	  managed clocks and Sensor management which is the ability to read
253d0407baSopenharmony_ci	  sensor data, and be notified of sensor value.
263d0407baSopenharmony_ci
273d0407baSopenharmony_ci	  This protocol library provides interface for all the client drivers
283d0407baSopenharmony_ci	  making use of the features offered by the SCMI.
293d0407baSopenharmony_ci
303d0407baSopenharmony_ciconfig ARM_SCMI_POWER_DOMAIN
313d0407baSopenharmony_ci	tristate "SCMI power domain driver"
323d0407baSopenharmony_ci	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
333d0407baSopenharmony_ci	default y
343d0407baSopenharmony_ci	select PM_GENERIC_DOMAINS if PM
353d0407baSopenharmony_ci	help
363d0407baSopenharmony_ci	  This enables support for the SCMI power domains which can be
373d0407baSopenharmony_ci	  enabled or disabled via the SCP firmware
383d0407baSopenharmony_ci
393d0407baSopenharmony_ci	  This driver can also be built as a module.  If so, the module
403d0407baSopenharmony_ci	  will be called scmi_pm_domain. Note this may needed early in boot
413d0407baSopenharmony_ci	  before rootfs may be available.
423d0407baSopenharmony_ci
433d0407baSopenharmony_ciconfig ARM_SCPI_PROTOCOL
443d0407baSopenharmony_ci	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
453d0407baSopenharmony_ci	depends on ARM || ARM64 || COMPILE_TEST
463d0407baSopenharmony_ci	depends on MAILBOX
473d0407baSopenharmony_ci	help
483d0407baSopenharmony_ci	  System Control and Power Interface (SCPI) Message Protocol is
493d0407baSopenharmony_ci	  defined for the purpose of communication between the Application
503d0407baSopenharmony_ci	  Cores(AP) and the System Control Processor(SCP). The MHU peripheral
513d0407baSopenharmony_ci	  provides a mechanism for inter-processor communication between SCP
523d0407baSopenharmony_ci	  and AP.
533d0407baSopenharmony_ci
543d0407baSopenharmony_ci	  SCP controls most of the power managament on the Application
553d0407baSopenharmony_ci	  Processors. It offers control and management of: the core/cluster
563d0407baSopenharmony_ci	  power states, various power domain DVFS including the core/cluster,
573d0407baSopenharmony_ci	  certain system clocks configuration, thermal sensors and many
583d0407baSopenharmony_ci	  others.
593d0407baSopenharmony_ci
603d0407baSopenharmony_ci	  This protocol library provides interface for all the client drivers
613d0407baSopenharmony_ci	  making use of the features offered by the SCP.
623d0407baSopenharmony_ci
633d0407baSopenharmony_ciconfig ARM_SCPI_POWER_DOMAIN
643d0407baSopenharmony_ci	tristate "SCPI power domain driver"
653d0407baSopenharmony_ci	depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF)
663d0407baSopenharmony_ci	default y
673d0407baSopenharmony_ci	select PM_GENERIC_DOMAINS if PM
683d0407baSopenharmony_ci	help
693d0407baSopenharmony_ci	  This enables support for the SCPI power domains which can be
703d0407baSopenharmony_ci	  enabled or disabled via the SCP firmware
713d0407baSopenharmony_ci
723d0407baSopenharmony_ciconfig ARM_SDE_INTERFACE
733d0407baSopenharmony_ci	bool "ARM Software Delegated Exception Interface (SDEI)"
743d0407baSopenharmony_ci	depends on ARM64
753d0407baSopenharmony_ci	help
763d0407baSopenharmony_ci	  The Software Delegated Exception Interface (SDEI) is an ARM
773d0407baSopenharmony_ci	  standard for registering callbacks from the platform firmware
783d0407baSopenharmony_ci	  into the OS. This is typically used to implement RAS notifications.
793d0407baSopenharmony_ci
803d0407baSopenharmony_ciconfig EDD
813d0407baSopenharmony_ci	tristate "BIOS Enhanced Disk Drive calls determine boot disk"
823d0407baSopenharmony_ci	depends on X86
833d0407baSopenharmony_ci	help
843d0407baSopenharmony_ci	  Say Y or M here if you want to enable BIOS Enhanced Disk Drive
853d0407baSopenharmony_ci	  Services real mode BIOS calls to determine which disk
863d0407baSopenharmony_ci	  BIOS tries boot from.  This information is then exported via sysfs.
873d0407baSopenharmony_ci
883d0407baSopenharmony_ci	  This option is experimental and is known to fail to boot on some
893d0407baSopenharmony_ci          obscure configurations. Most disk controller BIOS vendors do
903d0407baSopenharmony_ci          not yet implement this feature.
913d0407baSopenharmony_ci
923d0407baSopenharmony_ciconfig EDD_OFF
933d0407baSopenharmony_ci	bool "Sets default behavior for EDD detection to off"
943d0407baSopenharmony_ci	depends on EDD
953d0407baSopenharmony_ci	default n
963d0407baSopenharmony_ci	help
973d0407baSopenharmony_ci	  Say Y if you want EDD disabled by default, even though it is compiled into the
983d0407baSopenharmony_ci	  kernel. Say N if you want EDD enabled by default. EDD can be dynamically set
993d0407baSopenharmony_ci	  using the kernel parameter 'edd={on|skipmbr|off}'.
1003d0407baSopenharmony_ci
1013d0407baSopenharmony_ciconfig FIRMWARE_MEMMAP
1023d0407baSopenharmony_ci    bool "Add firmware-provided memory map to sysfs" if EXPERT
1033d0407baSopenharmony_ci    default X86
1043d0407baSopenharmony_ci    help
1053d0407baSopenharmony_ci      Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap.
1063d0407baSopenharmony_ci      That memory map is used for example by kexec to set up parameter area
1073d0407baSopenharmony_ci      for the next kernel, but can also be used for debugging purposes.
1083d0407baSopenharmony_ci
1093d0407baSopenharmony_ci      See also Documentation/ABI/testing/sysfs-firmware-memmap.
1103d0407baSopenharmony_ci
1113d0407baSopenharmony_ciconfig EFI_PCDP
1123d0407baSopenharmony_ci	bool "Console device selection via EFI PCDP or HCDP table"
1133d0407baSopenharmony_ci	depends on ACPI && EFI && IA64
1143d0407baSopenharmony_ci	default y if IA64
1153d0407baSopenharmony_ci	help
1163d0407baSopenharmony_ci	  If your firmware supplies the PCDP table, and you want to
1173d0407baSopenharmony_ci	  automatically use the primary console device it describes
1183d0407baSopenharmony_ci	  as the Linux console, say Y here.
1193d0407baSopenharmony_ci
1203d0407baSopenharmony_ci	  If your firmware supplies the HCDP table, and you want to
1213d0407baSopenharmony_ci	  use the first serial port it describes as the Linux console,
1223d0407baSopenharmony_ci	  say Y here.  If your EFI ConOut path contains only a UART
1233d0407baSopenharmony_ci	  device, it will become the console automatically.  Otherwise,
1243d0407baSopenharmony_ci	  you must specify the "console=hcdp" kernel boot argument.
1253d0407baSopenharmony_ci
1263d0407baSopenharmony_ci	  Neither the PCDP nor the HCDP affects naming of serial devices,
1273d0407baSopenharmony_ci	  so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending
1283d0407baSopenharmony_ci	  on how the driver discovers devices.
1293d0407baSopenharmony_ci
1303d0407baSopenharmony_ci	  You must also enable the appropriate drivers (serial, VGA, etc.)
1313d0407baSopenharmony_ci
1323d0407baSopenharmony_ci	  See DIG64_HCDPv20_042804.pdf available from
1333d0407baSopenharmony_ci	  <http://www.dig64.org/specifications/> 
1343d0407baSopenharmony_ci
1353d0407baSopenharmony_ciconfig DMIID
1363d0407baSopenharmony_ci    bool "Export DMI identification via sysfs to userspace"
1373d0407baSopenharmony_ci    depends on DMI
1383d0407baSopenharmony_ci    default y
1393d0407baSopenharmony_ci	help
1403d0407baSopenharmony_ci	  Say Y here if you want to query SMBIOS/DMI system identification
1413d0407baSopenharmony_ci	  information from userspace through /sys/class/dmi/id/ or if you want
1423d0407baSopenharmony_ci	  DMI-based module auto-loading.
1433d0407baSopenharmony_ci
1443d0407baSopenharmony_ciconfig DMI_SYSFS
1453d0407baSopenharmony_ci	tristate "DMI table support in sysfs"
1463d0407baSopenharmony_ci	depends on SYSFS && DMI
1473d0407baSopenharmony_ci	default n
1483d0407baSopenharmony_ci	help
1493d0407baSopenharmony_ci	  Say Y or M here to enable the exporting of the raw DMI table
1503d0407baSopenharmony_ci	  data via sysfs.  This is useful for consuming the data without
1513d0407baSopenharmony_ci	  requiring any access to /dev/mem at all.  Tables are found
1523d0407baSopenharmony_ci	  under /sys/firmware/dmi when this option is enabled and
1533d0407baSopenharmony_ci	  loaded.
1543d0407baSopenharmony_ci
1553d0407baSopenharmony_ciconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK
1563d0407baSopenharmony_ci	bool
1573d0407baSopenharmony_ci
1583d0407baSopenharmony_ciconfig ISCSI_IBFT_FIND
1593d0407baSopenharmony_ci	bool "iSCSI Boot Firmware Table Attributes"
1603d0407baSopenharmony_ci	depends on X86 && ISCSI_IBFT
1613d0407baSopenharmony_ci	default n
1623d0407baSopenharmony_ci	help
1633d0407baSopenharmony_ci	  This option enables the kernel to find the region of memory
1643d0407baSopenharmony_ci	  in which the ISCSI Boot Firmware Table (iBFT) resides. This
1653d0407baSopenharmony_ci	  is necessary for iSCSI Boot Firmware Table Attributes module to work
1663d0407baSopenharmony_ci	  properly.
1673d0407baSopenharmony_ci
1683d0407baSopenharmony_ciconfig ISCSI_IBFT
1693d0407baSopenharmony_ci	tristate "iSCSI Boot Firmware Table Attributes module"
1703d0407baSopenharmony_ci	select ISCSI_BOOT_SYSFS
1713d0407baSopenharmony_ci	select ISCSI_IBFT_FIND if X86
1723d0407baSopenharmony_ci	depends on ACPI && SCSI && SCSI_LOWLEVEL
1733d0407baSopenharmony_ci	default	n
1743d0407baSopenharmony_ci	help
1753d0407baSopenharmony_ci	  This option enables support for detection and exposing of iSCSI
1763d0407baSopenharmony_ci	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to
1773d0407baSopenharmony_ci	  detect iSCSI boot parameters dynamically during system boot, say Y.
1783d0407baSopenharmony_ci	  Otherwise, say N.
1793d0407baSopenharmony_ci
1803d0407baSopenharmony_ciconfig RASPBERRYPI_FIRMWARE
1813d0407baSopenharmony_ci	tristate "Raspberry Pi Firmware Driver"
1823d0407baSopenharmony_ci	depends on BCM2835_MBOX
1833d0407baSopenharmony_ci	help
1843d0407baSopenharmony_ci	  This option enables support for communicating with the firmware on the
1853d0407baSopenharmony_ci	  Raspberry Pi.
1863d0407baSopenharmony_ci
1873d0407baSopenharmony_ciconfig FW_CFG_SYSFS
1883d0407baSopenharmony_ci	tristate "QEMU fw_cfg device support in sysfs"
1893d0407baSopenharmony_ci	depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86)
1903d0407baSopenharmony_ci	depends on HAS_IOPORT_MAP
1913d0407baSopenharmony_ci	default n
1923d0407baSopenharmony_ci	help
1933d0407baSopenharmony_ci	  Say Y or M here to enable the exporting of the QEMU firmware
1943d0407baSopenharmony_ci	  configuration (fw_cfg) file entries via sysfs. Entries are
1953d0407baSopenharmony_ci	  found under /sys/firmware/fw_cfg when this option is enabled
1963d0407baSopenharmony_ci	  and loaded.
1973d0407baSopenharmony_ci
1983d0407baSopenharmony_ciconfig FW_CFG_SYSFS_CMDLINE
1993d0407baSopenharmony_ci	bool "QEMU fw_cfg device parameter parsing"
2003d0407baSopenharmony_ci	depends on FW_CFG_SYSFS
2013d0407baSopenharmony_ci	help
2023d0407baSopenharmony_ci	  Allow the qemu_fw_cfg device to be initialized via the kernel
2033d0407baSopenharmony_ci	  command line or using a module parameter.
2043d0407baSopenharmony_ci	  WARNING: Using incorrect parameters (base address in particular)
2053d0407baSopenharmony_ci	  may crash your system.
2063d0407baSopenharmony_ci
2073d0407baSopenharmony_ciconfig INTEL_STRATIX10_SERVICE
2083d0407baSopenharmony_ci	tristate "Intel Stratix10 Service Layer"
2093d0407baSopenharmony_ci	depends on (ARCH_STRATIX10 || ARCH_AGILEX) && HAVE_ARM_SMCCC
2103d0407baSopenharmony_ci	default n
2113d0407baSopenharmony_ci	help
2123d0407baSopenharmony_ci	  Intel Stratix10 service layer runs at privileged exception level,
2133d0407baSopenharmony_ci	  interfaces with the service providers (FPGA manager is one of them)
2143d0407baSopenharmony_ci	  and manages secure monitor call to communicate with secure monitor
2153d0407baSopenharmony_ci	  software at secure monitor exception level.
2163d0407baSopenharmony_ci
2173d0407baSopenharmony_ci	  Say Y here if you want Stratix10 service layer support.
2183d0407baSopenharmony_ci
2193d0407baSopenharmony_ciconfig INTEL_STRATIX10_RSU
2203d0407baSopenharmony_ci	tristate "Intel Stratix10 Remote System Update"
2213d0407baSopenharmony_ci	depends on INTEL_STRATIX10_SERVICE
2223d0407baSopenharmony_ci	help
2233d0407baSopenharmony_ci	  The Intel Remote System Update (RSU) driver exposes interfaces
2243d0407baSopenharmony_ci	  access through the Intel Service Layer to user space via sysfs
2253d0407baSopenharmony_ci	  device attribute nodes. The RSU interfaces report/control some of
2263d0407baSopenharmony_ci	  the optional RSU features of the Stratix 10 SoC FPGA.
2273d0407baSopenharmony_ci
2283d0407baSopenharmony_ci	  The RSU provides a way for customers to update the boot
2293d0407baSopenharmony_ci	  configuration of a Stratix 10 SoC device with significantly reduced
2303d0407baSopenharmony_ci	  risk of corrupting the bitstream storage and bricking the system.
2313d0407baSopenharmony_ci
2323d0407baSopenharmony_ci	  Enable RSU support if you are using an Intel SoC FPGA with the RSU
2333d0407baSopenharmony_ci	  feature enabled and you want Linux user space control.
2343d0407baSopenharmony_ci
2353d0407baSopenharmony_ci	  Say Y here if you want Intel RSU support.
2363d0407baSopenharmony_ci
2373d0407baSopenharmony_ciconfig QCOM_SCM
2383d0407baSopenharmony_ci	bool
2393d0407baSopenharmony_ci	depends on ARM || ARM64
2403d0407baSopenharmony_ci	depends on HAVE_ARM_SMCCC
2413d0407baSopenharmony_ci	select RESET_CONTROLLER
2423d0407baSopenharmony_ci
2433d0407baSopenharmony_ciconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT
2443d0407baSopenharmony_ci	bool "Qualcomm download mode enabled by default"
2453d0407baSopenharmony_ci	depends on QCOM_SCM
2463d0407baSopenharmony_ci	help
2473d0407baSopenharmony_ci	  A device with "download mode" enabled will upon an unexpected
2483d0407baSopenharmony_ci	  warm-restart enter a special debug mode that allows the user to
2493d0407baSopenharmony_ci	  "download" memory content over USB for offline postmortem analysis.
2503d0407baSopenharmony_ci	  The feature can be enabled/disabled on the kernel command line.
2513d0407baSopenharmony_ci
2523d0407baSopenharmony_ci	  Say Y here to enable "download mode" by default.
2533d0407baSopenharmony_ci
2543d0407baSopenharmony_ciconfig ROCKCHIP_SIP
2553d0407baSopenharmony_ci	tristate "Rockchip SIP interface"
2563d0407baSopenharmony_ci	depends on HAVE_ARM_SMCCC && ARCH_ROCKCHIP
2573d0407baSopenharmony_ci	help
2583d0407baSopenharmony_ci	  Say Y here if you want to enable SIP callbacks for Rockchip platforms
2593d0407baSopenharmony_ci	  This option enables support for communicating with the ATF.
2603d0407baSopenharmony_ci
2613d0407baSopenharmony_ciconfig TI_SCI_PROTOCOL
2623d0407baSopenharmony_ci	tristate "TI System Control Interface (TISCI) Message Protocol"
2633d0407baSopenharmony_ci	depends on TI_MESSAGE_MANAGER
2643d0407baSopenharmony_ci	help
2653d0407baSopenharmony_ci	  TI System Control Interface (TISCI) Message Protocol is used to manage
2663d0407baSopenharmony_ci	  compute systems such as ARM, DSP etc with the system controller in
2673d0407baSopenharmony_ci	  complex System on Chip(SoC) such as those found on certain keystone
2683d0407baSopenharmony_ci	  generation SoC from TI.
2693d0407baSopenharmony_ci
2703d0407baSopenharmony_ci	  System controller provides various facilities including power
2713d0407baSopenharmony_ci	  management function support.
2723d0407baSopenharmony_ci
2733d0407baSopenharmony_ci	  This protocol library is used by client drivers to use the features
2743d0407baSopenharmony_ci	  provided by the system controller.
2753d0407baSopenharmony_ci
2763d0407baSopenharmony_ciconfig TRUSTED_FOUNDATIONS
2773d0407baSopenharmony_ci	bool "Trusted Foundations secure monitor support"
2783d0407baSopenharmony_ci	depends on ARM && CPU_V7
2793d0407baSopenharmony_ci	help
2803d0407baSopenharmony_ci	  Some devices (including most early Tegra-based consumer devices on
2813d0407baSopenharmony_ci	  the market) are booted with the Trusted Foundations secure monitor
2823d0407baSopenharmony_ci	  active, requiring some core operations to be performed by the secure
2833d0407baSopenharmony_ci	  monitor instead of the kernel.
2843d0407baSopenharmony_ci
2853d0407baSopenharmony_ci	  This option allows the kernel to invoke the secure monitor whenever
2863d0407baSopenharmony_ci	  required on devices using Trusted Foundations. See the functions and
2873d0407baSopenharmony_ci	  comments in linux/firmware/trusted_foundations.h or the device tree
2883d0407baSopenharmony_ci	  bindings for "tlm,trusted-foundations" for details on how to use it.
2893d0407baSopenharmony_ci
2903d0407baSopenharmony_ci	  Choose N if you don't know what this is about.
2913d0407baSopenharmony_ci
2923d0407baSopenharmony_ciconfig TURRIS_MOX_RWTM
2933d0407baSopenharmony_ci	tristate "Turris Mox rWTM secure firmware driver"
2943d0407baSopenharmony_ci	depends on ARCH_MVEBU || COMPILE_TEST
2953d0407baSopenharmony_ci	depends on HAS_DMA && OF
2963d0407baSopenharmony_ci	depends on MAILBOX
2973d0407baSopenharmony_ci	select HW_RANDOM
2983d0407baSopenharmony_ci	select ARMADA_37XX_RWTM_MBOX
2993d0407baSopenharmony_ci	help
3003d0407baSopenharmony_ci	  This driver communicates with the firmware on the Cortex-M3 secure
3013d0407baSopenharmony_ci	  processor of the Turris Mox router. Enable if you are building for
3023d0407baSopenharmony_ci	  Turris Mox, and you will be able to read the device serial number and
3033d0407baSopenharmony_ci	  other manufacturing data and also utilize the Entropy Bit Generator
3043d0407baSopenharmony_ci	  for hardware random number generation.
3053d0407baSopenharmony_ci
3063d0407baSopenharmony_cisource "drivers/firmware/broadcom/Kconfig"
3073d0407baSopenharmony_cisource "drivers/firmware/google/Kconfig"
3083d0407baSopenharmony_cisource "drivers/firmware/efi/Kconfig"
3093d0407baSopenharmony_cisource "drivers/firmware/imx/Kconfig"
3103d0407baSopenharmony_cisource "drivers/firmware/meson/Kconfig"
3113d0407baSopenharmony_cisource "drivers/firmware/psci/Kconfig"
3123d0407baSopenharmony_cisource "drivers/firmware/smccc/Kconfig"
3133d0407baSopenharmony_cisource "drivers/firmware/tegra/Kconfig"
3143d0407baSopenharmony_cisource "drivers/firmware/xilinx/Kconfig"
3153d0407baSopenharmony_ci
3163d0407baSopenharmony_ciendmenu
317