xref: /openbmc/linux/drivers/firmware/Kconfig (revision 6b698713)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# For a description of the syntax of this configuration file,
4cd238effSMauro Carvalho Chehab# see Documentation/kbuild/kconfig-language.rst.
51da177e4SLinus Torvalds#
61da177e4SLinus Torvalds
71da177e4SLinus Torvaldsmenu "Firmware Drivers"
81da177e4SLinus Torvalds
9aa4f886fSSudeep Hollaconfig ARM_SCMI_PROTOCOL
10aa4f886fSSudeep Holla	bool "ARM System Control and Management Interface (SCMI) Message Protocol"
11aa4f886fSSudeep Holla	depends on ARM || ARM64 || COMPILE_TEST
12aa4f886fSSudeep Holla	depends on MAILBOX
13aa4f886fSSudeep Holla	help
14aa4f886fSSudeep Holla	  ARM System Control and Management Interface (SCMI) protocol is a
15aa4f886fSSudeep Holla	  set of operating system-independent software interfaces that are
16aa4f886fSSudeep Holla	  used in system management. SCMI is extensible and currently provides
17aa4f886fSSudeep Holla	  interfaces for: Discovery and self-description of the interfaces
18aa4f886fSSudeep Holla	  it supports, Power domain management which is the ability to place
19aa4f886fSSudeep Holla	  a given device or domain into the various power-saving states that
20aa4f886fSSudeep Holla	  it supports, Performance management which is the ability to control
21aa4f886fSSudeep Holla	  the performance of a domain that is composed of compute engines
22aa4f886fSSudeep Holla	  such as application processors and other accelerators, Clock
23aa4f886fSSudeep Holla	  management which is the ability to set and inquire rates on platform
24aa4f886fSSudeep Holla	  managed clocks and Sensor management which is the ability to read
25aa4f886fSSudeep Holla	  sensor data, and be notified of sensor value.
26aa4f886fSSudeep Holla
27aa4f886fSSudeep Holla	  This protocol library provides interface for all the client drivers
28aa4f886fSSudeep Holla	  making use of the features offered by the SCMI.
29aa4f886fSSudeep Holla
30898216c9SSudeep Hollaconfig ARM_SCMI_POWER_DOMAIN
31898216c9SSudeep Holla	tristate "SCMI power domain driver"
32898216c9SSudeep Holla	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
33898216c9SSudeep Holla	default y
34898216c9SSudeep Holla	select PM_GENERIC_DOMAINS if PM
35898216c9SSudeep Holla	help
36898216c9SSudeep Holla	  This enables support for the SCMI power domains which can be
37898216c9SSudeep Holla	  enabled or disabled via the SCP firmware
38898216c9SSudeep Holla
39898216c9SSudeep Holla	  This driver can also be built as a module.  If so, the module
40898216c9SSudeep Holla	  will be called scmi_pm_domain. Note this may needed early in boot
41898216c9SSudeep Holla	  before rootfs may be available.
42898216c9SSudeep Holla
438cb7cf56SSudeep Hollaconfig ARM_SCPI_PROTOCOL
448cb7cf56SSudeep Holla	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
4592f3e6ebSJean Delvare	depends on ARM || ARM64 || COMPILE_TEST
468f1498c0SSudeep Holla	depends on MAILBOX
478cb7cf56SSudeep Holla	help
488cb7cf56SSudeep Holla	  System Control and Power Interface (SCPI) Message Protocol is
498cb7cf56SSudeep Holla	  defined for the purpose of communication between the Application
508cb7cf56SSudeep Holla	  Cores(AP) and the System Control Processor(SCP). The MHU peripheral
518cb7cf56SSudeep Holla	  provides a mechanism for inter-processor communication between SCP
528cb7cf56SSudeep Holla	  and AP.
538cb7cf56SSudeep Holla
548cb7cf56SSudeep Holla	  SCP controls most of the power managament on the Application
558cb7cf56SSudeep Holla	  Processors. It offers control and management of: the core/cluster
568cb7cf56SSudeep Holla	  power states, various power domain DVFS including the core/cluster,
578cb7cf56SSudeep Holla	  certain system clocks configuration, thermal sensors and many
588cb7cf56SSudeep Holla	  others.
598cb7cf56SSudeep Holla
608cb7cf56SSudeep Holla	  This protocol library provides interface for all the client drivers
618cb7cf56SSudeep Holla	  making use of the features offered by the SCP.
628cb7cf56SSudeep Holla
638bec4337SSudeep Hollaconfig ARM_SCPI_POWER_DOMAIN
648bec4337SSudeep Holla	tristate "SCPI power domain driver"
65e517dfe6SArnd Bergmann	depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF)
668bec4337SSudeep Holla	default y
678bec4337SSudeep Holla	select PM_GENERIC_DOMAINS if PM
688bec4337SSudeep Holla	help
698bec4337SSudeep Holla	  This enables support for the SCPI power domains which can be
708bec4337SSudeep Holla	  enabled or disabled via the SCP firmware
718bec4337SSudeep Holla
72ad6eb31eSJames Morseconfig ARM_SDE_INTERFACE
73ad6eb31eSJames Morse	bool "ARM Software Delegated Exception Interface (SDEI)"
74ad6eb31eSJames Morse	depends on ARM64
75ad6eb31eSJames Morse	help
76ad6eb31eSJames Morse	  The Software Delegated Exception Interface (SDEI) is an ARM
77ad6eb31eSJames Morse	  standard for registering callbacks from the platform firmware
78ad6eb31eSJames Morse	  into the OS. This is typically used to implement RAS notifications.
79ad6eb31eSJames Morse
801da177e4SLinus Torvaldsconfig EDD
815d18639aSChris Wedgwood	tristate "BIOS Enhanced Disk Drive calls determine boot disk"
829b6e3e42SMike Frysinger	depends on X86
831da177e4SLinus Torvalds	help
841da177e4SLinus Torvalds	  Say Y or M here if you want to enable BIOS Enhanced Disk Drive
851da177e4SLinus Torvalds	  Services real mode BIOS calls to determine which disk
861da177e4SLinus Torvalds	  BIOS tries boot from.  This information is then exported via sysfs.
871da177e4SLinus Torvalds
881da177e4SLinus Torvalds	  This option is experimental and is known to fail to boot on some
891da177e4SLinus Torvalds          obscure configurations. Most disk controller BIOS vendors do
901da177e4SLinus Torvalds          not yet implement this feature.
911da177e4SLinus Torvalds
928c4dd606STim Gardnerconfig EDD_OFF
938c4dd606STim Gardner	bool "Sets default behavior for EDD detection to off"
948c4dd606STim Gardner	depends on EDD
958c4dd606STim Gardner	default n
968c4dd606STim Gardner	help
978c4dd606STim Gardner	  Say Y if you want EDD disabled by default, even though it is compiled into the
988c4dd606STim Gardner	  kernel. Say N if you want EDD enabled by default. EDD can be dynamically set
998c4dd606STim Gardner	  using the kernel parameter 'edd={on|skipmbr|off}'.
1008c4dd606STim Gardner
10169ac9cd6SBernhard Walleconfig FIRMWARE_MEMMAP
1026a108a14SDavid Rientjes    bool "Add firmware-provided memory map to sysfs" if EXPERT
1039b6e3e42SMike Frysinger    default X86
10469ac9cd6SBernhard Walle    help
10569ac9cd6SBernhard Walle      Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap.
10669ac9cd6SBernhard Walle      That memory map is used for example by kexec to set up parameter area
10769ac9cd6SBernhard Walle      for the next kernel, but can also be used for debugging purposes.
10869ac9cd6SBernhard Walle
10969ac9cd6SBernhard Walle      See also Documentation/ABI/testing/sysfs-firmware-memmap.
11069ac9cd6SBernhard Walle
1111da177e4SLinus Torvaldsconfig EFI_PCDP
1121da177e4SLinus Torvalds	bool "Console device selection via EFI PCDP or HCDP table"
1131da177e4SLinus Torvalds	depends on ACPI && EFI && IA64
1141da177e4SLinus Torvalds	default y if IA64
1151da177e4SLinus Torvalds	help
1161da177e4SLinus Torvalds	  If your firmware supplies the PCDP table, and you want to
1171da177e4SLinus Torvalds	  automatically use the primary console device it describes
1181da177e4SLinus Torvalds	  as the Linux console, say Y here.
1191da177e4SLinus Torvalds
1201da177e4SLinus Torvalds	  If your firmware supplies the HCDP table, and you want to
1211da177e4SLinus Torvalds	  use the first serial port it describes as the Linux console,
1221da177e4SLinus Torvalds	  say Y here.  If your EFI ConOut path contains only a UART
1231da177e4SLinus Torvalds	  device, it will become the console automatically.  Otherwise,
1241da177e4SLinus Torvalds	  you must specify the "console=hcdp" kernel boot argument.
1251da177e4SLinus Torvalds
1261da177e4SLinus Torvalds	  Neither the PCDP nor the HCDP affects naming of serial devices,
1271da177e4SLinus Torvalds	  so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending
1281da177e4SLinus Torvalds	  on how the driver discovers devices.
1291da177e4SLinus Torvalds
1301da177e4SLinus Torvalds	  You must also enable the appropriate drivers (serial, VGA, etc.)
1311da177e4SLinus Torvalds
132631dd1a8SJustin P. Mattock	  See DIG64_HCDPv20_042804.pdf available from
133631dd1a8SJustin P. Mattock	  <http://www.dig64.org/specifications/>
1341da177e4SLinus Torvalds
1354f5c791aSLennart Poetteringconfig DMIID
1364f5c791aSLennart Poettering    bool "Export DMI identification via sysfs to userspace"
1374f5c791aSLennart Poettering    depends on DMI
1384f5c791aSLennart Poettering    default y
1394f5c791aSLennart Poettering	help
1404f5c791aSLennart Poettering	  Say Y here if you want to query SMBIOS/DMI system identification
1414f5c791aSLennart Poettering	  information from userspace through /sys/class/dmi/id/ or if you want
1424f5c791aSLennart Poettering	  DMI-based module auto-loading.
1434f5c791aSLennart Poettering
144948af1f0SMike Waychisonconfig DMI_SYSFS
145948af1f0SMike Waychison	tristate "DMI table support in sysfs"
146948af1f0SMike Waychison	depends on SYSFS && DMI
147948af1f0SMike Waychison	default n
148948af1f0SMike Waychison	help
149948af1f0SMike Waychison	  Say Y or M here to enable the exporting of the raw DMI table
150948af1f0SMike Waychison	  data via sysfs.  This is useful for consuming the data without
151948af1f0SMike Waychison	  requiring any access to /dev/mem at all.  Tables are found
152948af1f0SMike Waychison	  under /sys/firmware/dmi when this option is enabled and
153948af1f0SMike Waychison	  loaded.
154948af1f0SMike Waychison
155cf074402SArd Biesheuvelconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK
156cf074402SArd Biesheuvel	bool
157cf074402SArd Biesheuvel
158138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT_FIND
159138fe4e0SKonrad Rzeszutek	bool "iSCSI Boot Firmware Table Attributes"
16094bccc34SThomas Tai	depends on X86 && ISCSI_IBFT
161138fe4e0SKonrad Rzeszutek	default n
162138fe4e0SKonrad Rzeszutek	help
163138fe4e0SKonrad Rzeszutek	  This option enables the kernel to find the region of memory
164138fe4e0SKonrad Rzeszutek	  in which the ISCSI Boot Firmware Table (iBFT) resides. This
165138fe4e0SKonrad Rzeszutek	  is necessary for iSCSI Boot Firmware Table Attributes module to work
166138fe4e0SKonrad Rzeszutek	  properly.
167138fe4e0SKonrad Rzeszutek
168138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT
169138fe4e0SKonrad Rzeszutek	tristate "iSCSI Boot Firmware Table Attributes module"
170b33a84a3SMike Christie	select ISCSI_BOOT_SYSFS
17194bccc34SThomas Tai	select ISCSI_IBFT_FIND if X86
17294bccc34SThomas Tai	depends on ACPI && SCSI && SCSI_LOWLEVEL
173138fe4e0SKonrad Rzeszutek	default	n
174138fe4e0SKonrad Rzeszutek	help
175138fe4e0SKonrad Rzeszutek	  This option enables support for detection and exposing of iSCSI
176138fe4e0SKonrad Rzeszutek	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to
177138fe4e0SKonrad Rzeszutek	  detect iSCSI boot parameters dynamically during system boot, say Y.
178138fe4e0SKonrad Rzeszutek	  Otherwise, say N.
179138fe4e0SKonrad Rzeszutek
1804e3d6065SEric Anholtconfig RASPBERRYPI_FIRMWARE
181c65822feSNicolas Saenz Julienne	bool "Raspberry Pi Firmware Driver"
1824e3d6065SEric Anholt	depends on BCM2835_MBOX
183c65822feSNicolas Saenz Julienne	default USB_PCI
1844e3d6065SEric Anholt	help
1854e3d6065SEric Anholt	  This option enables support for communicating with the firmware on the
1864e3d6065SEric Anholt	  Raspberry Pi.
1874e3d6065SEric Anholt
18875f3e8e4SGabriel Somloconfig FW_CFG_SYSFS
18975f3e8e4SGabriel Somlo	tristate "QEMU fw_cfg device support in sysfs"
190*6b698713SHelge Deller	depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86)
19128c09ec4SArnd Bergmann	depends on HAS_IOPORT_MAP
19275f3e8e4SGabriel Somlo	default n
19375f3e8e4SGabriel Somlo	help
19475f3e8e4SGabriel Somlo	  Say Y or M here to enable the exporting of the QEMU firmware
19575f3e8e4SGabriel Somlo	  configuration (fw_cfg) file entries via sysfs. Entries are
19675f3e8e4SGabriel Somlo	  found under /sys/firmware/fw_cfg when this option is enabled
19775f3e8e4SGabriel Somlo	  and loaded.
19875f3e8e4SGabriel Somlo
19975f3e8e4SGabriel Somloconfig FW_CFG_SYSFS_CMDLINE
20075f3e8e4SGabriel Somlo	bool "QEMU fw_cfg device parameter parsing"
20175f3e8e4SGabriel Somlo	depends on FW_CFG_SYSFS
20275f3e8e4SGabriel Somlo	help
20375f3e8e4SGabriel Somlo	  Allow the qemu_fw_cfg device to be initialized via the kernel
20475f3e8e4SGabriel Somlo	  command line or using a module parameter.
20575f3e8e4SGabriel Somlo	  WARNING: Using incorrect parameters (base address in particular)
20675f3e8e4SGabriel Somlo	  may crash your system.
20775f3e8e4SGabriel Somlo
2087ca5ce89SRichard Gongconfig INTEL_STRATIX10_SERVICE
2097ca5ce89SRichard Gong	tristate "Intel Stratix10 Service Layer"
210231d901dSRichard Gong	depends on (ARCH_STRATIX10 || ARCH_AGILEX) && HAVE_ARM_SMCCC
2117ca5ce89SRichard Gong	default n
2127ca5ce89SRichard Gong	help
2137ca5ce89SRichard Gong	  Intel Stratix10 service layer runs at privileged exception level,
2147ca5ce89SRichard Gong	  interfaces with the service providers (FPGA manager is one of them)
2157ca5ce89SRichard Gong	  and manages secure monitor call to communicate with secure monitor
2167ca5ce89SRichard Gong	  software at secure monitor exception level.
2177ca5ce89SRichard Gong
2187ca5ce89SRichard Gong	  Say Y here if you want Stratix10 service layer support.
2197ca5ce89SRichard Gong
2204526ebbcSRichard Gongconfig INTEL_STRATIX10_RSU
2214526ebbcSRichard Gong	tristate "Intel Stratix10 Remote System Update"
2224526ebbcSRichard Gong	depends on INTEL_STRATIX10_SERVICE
2234526ebbcSRichard Gong	help
2244526ebbcSRichard Gong	  The Intel Remote System Update (RSU) driver exposes interfaces
2254526ebbcSRichard Gong	  access through the Intel Service Layer to user space via sysfs
2264526ebbcSRichard Gong	  device attribute nodes. The RSU interfaces report/control some of
2274526ebbcSRichard Gong	  the optional RSU features of the Stratix 10 SoC FPGA.
2284526ebbcSRichard Gong
2294526ebbcSRichard Gong	  The RSU provides a way for customers to update the boot
2304526ebbcSRichard Gong	  configuration of a Stratix 10 SoC device with significantly reduced
2314526ebbcSRichard Gong	  risk of corrupting the bitstream storage and bricking the system.
2324526ebbcSRichard Gong
2334526ebbcSRichard Gong	  Enable RSU support if you are using an Intel SoC FPGA with the RSU
2344526ebbcSRichard Gong	  feature enabled and you want Linux user space control.
2354526ebbcSRichard Gong
2364526ebbcSRichard Gong	  Say Y here if you want Intel RSU support.
2374526ebbcSRichard Gong
238916f743dSKumar Galaconfig QCOM_SCM
239916f743dSKumar Gala	bool
240916f743dSKumar Gala	depends on ARM || ARM64
241dd4fe5b2SBjorn Andersson	select RESET_CONTROLLER
242916f743dSKumar Gala
2438c1b7dc9SBjorn Anderssonconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT
2448c1b7dc9SBjorn Andersson	bool "Qualcomm download mode enabled by default"
2458c1b7dc9SBjorn Andersson	depends on QCOM_SCM
2468c1b7dc9SBjorn Andersson	help
2478c1b7dc9SBjorn Andersson	  A device with "download mode" enabled will upon an unexpected
2488c1b7dc9SBjorn Andersson	  warm-restart enter a special debug mode that allows the user to
2498c1b7dc9SBjorn Andersson	  "download" memory content over USB for offline postmortem analysis.
2508c1b7dc9SBjorn Andersson	  The feature can be enabled/disabled on the kernel command line.
2518c1b7dc9SBjorn Andersson
2528c1b7dc9SBjorn Andersson	  Say Y here to enable "download mode" by default.
2538c1b7dc9SBjorn Andersson
254aa276781SNishanth Menonconfig TI_SCI_PROTOCOL
255aa276781SNishanth Menon	tristate "TI System Control Interface (TISCI) Message Protocol"
256aa276781SNishanth Menon	depends on TI_MESSAGE_MANAGER
257aa276781SNishanth Menon	help
258aa276781SNishanth Menon	  TI System Control Interface (TISCI) Message Protocol is used to manage
259aa276781SNishanth Menon	  compute systems such as ARM, DSP etc with the system controller in
260aa276781SNishanth Menon	  complex System on Chip(SoC) such as those found on certain keystone
261aa276781SNishanth Menon	  generation SoC from TI.
262aa276781SNishanth Menon
263aa276781SNishanth Menon	  System controller provides various facilities including power
264aa276781SNishanth Menon	  management function support.
265aa276781SNishanth Menon
266aa276781SNishanth Menon	  This protocol library is used by client drivers to use the features
267aa276781SNishanth Menon	  provided by the system controller.
268aa276781SNishanth Menon
2694cb5d9ecSThierry Redingconfig TRUSTED_FOUNDATIONS
2704cb5d9ecSThierry Reding	bool "Trusted Foundations secure monitor support"
271cad47b32SArnd Bergmann	depends on ARM && CPU_V7
2724cb5d9ecSThierry Reding	help
2734cb5d9ecSThierry Reding	  Some devices (including most early Tegra-based consumer devices on
2744cb5d9ecSThierry Reding	  the market) are booted with the Trusted Foundations secure monitor
2754cb5d9ecSThierry Reding	  active, requiring some core operations to be performed by the secure
2764cb5d9ecSThierry Reding	  monitor instead of the kernel.
2774cb5d9ecSThierry Reding
2784cb5d9ecSThierry Reding	  This option allows the kernel to invoke the secure monitor whenever
2794cb5d9ecSThierry Reding	  required on devices using Trusted Foundations. See the functions and
2804cb5d9ecSThierry Reding	  comments in linux/firmware/trusted_foundations.h or the device tree
2814cb5d9ecSThierry Reding	  bindings for "tlm,trusted-foundations" for details on how to use it.
2824cb5d9ecSThierry Reding
2834cb5d9ecSThierry Reding	  Choose N if you don't know what this is about.
2844cb5d9ecSThierry Reding
285389711b3SMarek Behúnconfig TURRIS_MOX_RWTM
286389711b3SMarek Behún	tristate "Turris Mox rWTM secure firmware driver"
287389711b3SMarek Behún	depends on ARCH_MVEBU || COMPILE_TEST
288389711b3SMarek Behún	depends on HAS_DMA && OF
289389711b3SMarek Behún	depends on MAILBOX
290389711b3SMarek Behún	select HW_RANDOM
291389711b3SMarek Behún	select ARMADA_37XX_RWTM_MBOX
292389711b3SMarek Behún	help
293389711b3SMarek Behún	  This driver communicates with the firmware on the Cortex-M3 secure
294389711b3SMarek Behún	  processor of the Turris Mox router. Enable if you are building for
295389711b3SMarek Behún	  Turris Mox, and you will be able to read the device serial number and
296389711b3SMarek Behún	  other manufacturing data and also utilize the Entropy Bit Generator
297389711b3SMarek Behún	  for hardware random number generation.
298389711b3SMarek Behún
299f6e734a8SRafał Miłeckisource "drivers/firmware/broadcom/Kconfig"
30074c5b31cSMike Waychisonsource "drivers/firmware/google/Kconfig"
30104851772SMatt Flemingsource "drivers/firmware/efi/Kconfig"
302edbee095SDong Aishengsource "drivers/firmware/imx/Kconfig"
3032c4ddb21SCarlo Caionesource "drivers/firmware/meson/Kconfig"
304e5bfb21dSSudeep Hollasource "drivers/firmware/psci/Kconfig"
305e5bfb21dSSudeep Hollasource "drivers/firmware/smccc/Kconfig"
306ca791d7fSThierry Redingsource "drivers/firmware/tegra/Kconfig"
30776582671SRajan Vajasource "drivers/firmware/xilinx/Kconfig"
30874c5b31cSMike Waychison
3091da177e4SLinus Torvaldsendmenu
310