xref: /linux/drivers/firmware/Kconfig (revision 67f8bc848ee31831336bd478e57d2f993551902e)
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
9e8419c24SCristian Marussisource "drivers/firmware/arm_scmi/Kconfig"
10898216c9SSudeep Holla
118cb7cf56SSudeep Hollaconfig ARM_SCPI_PROTOCOL
128cb7cf56SSudeep Holla	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
1392f3e6ebSJean Delvare	depends on ARM || ARM64 || COMPILE_TEST
148f1498c0SSudeep Holla	depends on MAILBOX
158cb7cf56SSudeep Holla	help
168cb7cf56SSudeep Holla	  System Control and Power Interface (SCPI) Message Protocol is
178cb7cf56SSudeep Holla	  defined for the purpose of communication between the Application
188cb7cf56SSudeep Holla	  Cores(AP) and the System Control Processor(SCP). The MHU peripheral
198cb7cf56SSudeep Holla	  provides a mechanism for inter-processor communication between SCP
208cb7cf56SSudeep Holla	  and AP.
218cb7cf56SSudeep Holla
2254da51a8SColin Ian King	  SCP controls most of the power management on the Application
238cb7cf56SSudeep Holla	  Processors. It offers control and management of: the core/cluster
248cb7cf56SSudeep Holla	  power states, various power domain DVFS including the core/cluster,
258cb7cf56SSudeep Holla	  certain system clocks configuration, thermal sensors and many
268cb7cf56SSudeep Holla	  others.
278cb7cf56SSudeep Holla
288cb7cf56SSudeep Holla	  This protocol library provides interface for all the client drivers
298cb7cf56SSudeep Holla	  making use of the features offered by the SCP.
308cb7cf56SSudeep Holla
31ad6eb31eSJames Morseconfig ARM_SDE_INTERFACE
32ad6eb31eSJames Morse	bool "ARM Software Delegated Exception Interface (SDEI)"
33ad6eb31eSJames Morse	depends on ARM64
34ad6eb31eSJames Morse	help
35ad6eb31eSJames Morse	  The Software Delegated Exception Interface (SDEI) is an ARM
36ad6eb31eSJames Morse	  standard for registering callbacks from the platform firmware
37ad6eb31eSJames Morse	  into the OS. This is typically used to implement RAS notifications.
38ad6eb31eSJames Morse
390c2c5659SKiryl Shutsemau (Meta)config ARM_SDEI_NMI
400c2c5659SKiryl Shutsemau (Meta)	bool "SDEI-based cross-CPU NMI service (arm64)"
410c2c5659SKiryl Shutsemau (Meta)	depends on ARM_SDE_INTERFACE
420c2c5659SKiryl Shutsemau (Meta)	help
430c2c5659SKiryl Shutsemau (Meta)	  Provides SDEI-based cross-CPU NMI delivery for hooks that need
440c2c5659SKiryl Shutsemau (Meta)	  to reach interrupt-masked CPUs on silicon that lacks FEAT_NMI:
450c2c5659SKiryl Shutsemau (Meta)
460c2c5659SKiryl Shutsemau (Meta)	    - arch_trigger_cpumask_backtrace()  (sysrq-l, RCU stalls,
470c2c5659SKiryl Shutsemau (Meta)	      hardlockup_all_cpu_backtrace, soft-lockup secondary dumps,
480c2c5659SKiryl Shutsemau (Meta)	      hung-task auxiliary dumps)
49d639f762SKiryl Shutsemau (Meta)	    - smp_send_stop() escalation         (reboot/halt and the
50d639f762SKiryl Shutsemau (Meta)	      panic / kdump crash stop)
510c2c5659SKiryl Shutsemau (Meta)
520c2c5659SKiryl Shutsemau (Meta)	  The driver registers a handler for the SDEI software-signalled
530c2c5659SKiryl Shutsemau (Meta)	  event (event 0) and reaches a target CPU by signalling it with
540c2c5659SKiryl Shutsemau (Meta)	  SDEI_EVENT_SIGNAL. Firmware delivers the event out of EL3
550c2c5659SKiryl Shutsemau (Meta)	  regardless of the target's PSTATE.DAIF -- forced delivery into a
560c2c5659SKiryl Shutsemau (Meta)	  CPU wedged with interrupts locally masked.
570c2c5659SKiryl Shutsemau (Meta)
580c2c5659SKiryl Shutsemau (Meta)	  If unsure, say N.
590c2c5659SKiryl Shutsemau (Meta)
601da177e4SLinus Torvaldsconfig EDD
615d18639aSChris Wedgwood	tristate "BIOS Enhanced Disk Drive calls determine boot disk"
629b6e3e42SMike Frysinger	depends on X86
631da177e4SLinus Torvalds	help
641da177e4SLinus Torvalds	  Say Y or M here if you want to enable BIOS Enhanced Disk Drive
651da177e4SLinus Torvalds	  Services real mode BIOS calls to determine which disk
661da177e4SLinus Torvalds	  BIOS tries boot from.  This information is then exported via sysfs.
671da177e4SLinus Torvalds
681da177e4SLinus Torvalds	  This option is experimental and is known to fail to boot on some
691da177e4SLinus Torvalds          obscure configurations. Most disk controller BIOS vendors do
701da177e4SLinus Torvalds          not yet implement this feature.
711da177e4SLinus Torvalds
728c4dd606STim Gardnerconfig EDD_OFF
738c4dd606STim Gardner	bool "Sets default behavior for EDD detection to off"
748c4dd606STim Gardner	depends on EDD
758c4dd606STim Gardner	default n
768c4dd606STim Gardner	help
778c4dd606STim Gardner	  Say Y if you want EDD disabled by default, even though it is compiled into the
788c4dd606STim Gardner	  kernel. Say N if you want EDD enabled by default. EDD can be dynamically set
798c4dd606STim Gardner	  using the kernel parameter 'edd={on|skipmbr|off}'.
808c4dd606STim Gardner
8169ac9cd6SBernhard Walleconfig FIRMWARE_MEMMAP
826a108a14SDavid Rientjes    bool "Add firmware-provided memory map to sysfs" if EXPERT
839b6e3e42SMike Frysinger    default X86
8469ac9cd6SBernhard Walle    help
8569ac9cd6SBernhard Walle      Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap.
8669ac9cd6SBernhard Walle      That memory map is used for example by kexec to set up parameter area
8769ac9cd6SBernhard Walle      for the next kernel, but can also be used for debugging purposes.
8869ac9cd6SBernhard Walle
8969ac9cd6SBernhard Walle      See also Documentation/ABI/testing/sysfs-firmware-memmap.
9069ac9cd6SBernhard Walle
914f5c791aSLennart Poetteringconfig DMIID
924f5c791aSLennart Poettering    bool "Export DMI identification via sysfs to userspace"
934f5c791aSLennart Poettering    depends on DMI
944f5c791aSLennart Poettering    default y
954f5c791aSLennart Poettering	help
964f5c791aSLennart Poettering	  Say Y here if you want to query SMBIOS/DMI system identification
974f5c791aSLennart Poettering	  information from userspace through /sys/class/dmi/id/ or if you want
984f5c791aSLennart Poettering	  DMI-based module auto-loading.
994f5c791aSLennart Poettering
100948af1f0SMike Waychisonconfig DMI_SYSFS
101948af1f0SMike Waychison	tristate "DMI table support in sysfs"
102948af1f0SMike Waychison	depends on SYSFS && DMI
103948af1f0SMike Waychison	default n
104948af1f0SMike Waychison	help
105948af1f0SMike Waychison	  Say Y or M here to enable the exporting of the raw DMI table
106948af1f0SMike Waychison	  data via sysfs.  This is useful for consuming the data without
107948af1f0SMike Waychison	  requiring any access to /dev/mem at all.  Tables are found
108948af1f0SMike Waychison	  under /sys/firmware/dmi when this option is enabled and
109948af1f0SMike Waychison	  loaded.
110948af1f0SMike Waychison
111cf074402SArd Biesheuvelconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK
112cf074402SArd Biesheuvel	bool
113cf074402SArd Biesheuvel
114138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT_FIND
115138fe4e0SKonrad Rzeszutek	bool "iSCSI Boot Firmware Table Attributes"
11694bccc34SThomas Tai	depends on X86 && ISCSI_IBFT
117138fe4e0SKonrad Rzeszutek	default n
118138fe4e0SKonrad Rzeszutek	help
119138fe4e0SKonrad Rzeszutek	  This option enables the kernel to find the region of memory
120138fe4e0SKonrad Rzeszutek	  in which the ISCSI Boot Firmware Table (iBFT) resides. This
121138fe4e0SKonrad Rzeszutek	  is necessary for iSCSI Boot Firmware Table Attributes module to work
122138fe4e0SKonrad Rzeszutek	  properly.
123138fe4e0SKonrad Rzeszutek
124138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT
125138fe4e0SKonrad Rzeszutek	tristate "iSCSI Boot Firmware Table Attributes module"
126b33a84a3SMike Christie	select ISCSI_BOOT_SYSFS
12794bccc34SThomas Tai	select ISCSI_IBFT_FIND if X86
12894bccc34SThomas Tai	depends on ACPI && SCSI && SCSI_LOWLEVEL
129138fe4e0SKonrad Rzeszutek	default n
130138fe4e0SKonrad Rzeszutek	help
131138fe4e0SKonrad Rzeszutek	  This option enables support for detection and exposing of iSCSI
132138fe4e0SKonrad Rzeszutek	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to
133138fe4e0SKonrad Rzeszutek	  detect iSCSI boot parameters dynamically during system boot, say Y.
134138fe4e0SKonrad Rzeszutek	  Otherwise, say N.
135138fe4e0SKonrad Rzeszutek
1364e3d6065SEric Anholtconfig RASPBERRYPI_FIRMWARE
13783a06a10SNicolas Saenz Julienne	tristate "Raspberry Pi Firmware Driver"
138e8f908b9SChen-Yu Tsai	depends on ARCH_BCM2835 || COMPILE_TEST
139e8f908b9SChen-Yu Tsai	depends on ARM || ARM64
140e8f908b9SChen-Yu Tsai	depends on MAILBOX
141e8f908b9SChen-Yu Tsai	default ARCH_BCM2835
1424e3d6065SEric Anholt	help
1434e3d6065SEric Anholt	  This option enables support for communicating with the firmware on the
1444e3d6065SEric Anholt	  Raspberry Pi.
1454e3d6065SEric Anholt
14675f3e8e4SGabriel Somloconfig FW_CFG_SYSFS
14775f3e8e4SGabriel Somlo	tristate "QEMU fw_cfg device support in sysfs"
1487222e8c8SHuacai Chen	depends on SYSFS && (ARM || ARM64 || LOONGARCH || PARISC || PPC_PMAC || RISCV || SPARC || X86)
14928c09ec4SArnd Bergmann	depends on HAS_IOPORT_MAP
15075f3e8e4SGabriel Somlo	default n
15175f3e8e4SGabriel Somlo	help
15275f3e8e4SGabriel Somlo	  Say Y or M here to enable the exporting of the QEMU firmware
15375f3e8e4SGabriel Somlo	  configuration (fw_cfg) file entries via sysfs. Entries are
15475f3e8e4SGabriel Somlo	  found under /sys/firmware/fw_cfg when this option is enabled
15575f3e8e4SGabriel Somlo	  and loaded.
15675f3e8e4SGabriel Somlo
15775f3e8e4SGabriel Somloconfig FW_CFG_SYSFS_CMDLINE
15875f3e8e4SGabriel Somlo	bool "QEMU fw_cfg device parameter parsing"
15975f3e8e4SGabriel Somlo	depends on FW_CFG_SYSFS
16075f3e8e4SGabriel Somlo	help
16175f3e8e4SGabriel Somlo	  Allow the qemu_fw_cfg device to be initialized via the kernel
16275f3e8e4SGabriel Somlo	  command line or using a module parameter.
16375f3e8e4SGabriel Somlo	  WARNING: Using incorrect parameters (base address in particular)
16475f3e8e4SGabriel Somlo	  may crash your system.
16575f3e8e4SGabriel Somlo
1667ca5ce89SRichard Gongconfig INTEL_STRATIX10_SERVICE
1677ca5ce89SRichard Gong	tristate "Intel Stratix10 Service Layer"
16838ad957bSKrzysztof Kozlowski	depends on ARCH_INTEL_SOCFPGA && ARM64 && HAVE_ARM_SMCCC
1697ca5ce89SRichard Gong	default n
1707ca5ce89SRichard Gong	help
1717ca5ce89SRichard Gong	  Intel Stratix10 service layer runs at privileged exception level,
1727ca5ce89SRichard Gong	  interfaces with the service providers (FPGA manager is one of them)
1737ca5ce89SRichard Gong	  and manages secure monitor call to communicate with secure monitor
1747ca5ce89SRichard Gong	  software at secure monitor exception level.
1757ca5ce89SRichard Gong
1767ca5ce89SRichard Gong	  Say Y here if you want Stratix10 service layer support.
1777ca5ce89SRichard Gong
1784526ebbcSRichard Gongconfig INTEL_STRATIX10_RSU
1794526ebbcSRichard Gong	tristate "Intel Stratix10 Remote System Update"
1804526ebbcSRichard Gong	depends on INTEL_STRATIX10_SERVICE
1814526ebbcSRichard Gong	help
1824526ebbcSRichard Gong	  The Intel Remote System Update (RSU) driver exposes interfaces
1834526ebbcSRichard Gong	  access through the Intel Service Layer to user space via sysfs
1844526ebbcSRichard Gong	  device attribute nodes. The RSU interfaces report/control some of
1854526ebbcSRichard Gong	  the optional RSU features of the Stratix 10 SoC FPGA.
1864526ebbcSRichard Gong
1874526ebbcSRichard Gong	  The RSU provides a way for customers to update the boot
1884526ebbcSRichard Gong	  configuration of a Stratix 10 SoC device with significantly reduced
1894526ebbcSRichard Gong	  risk of corrupting the bitstream storage and bricking the system.
1904526ebbcSRichard Gong
1914526ebbcSRichard Gong	  Enable RSU support if you are using an Intel SoC FPGA with the RSU
1924526ebbcSRichard Gong	  feature enabled and you want Linux user space control.
1934526ebbcSRichard Gong
1944526ebbcSRichard Gong	  Say Y here if you want Intel RSU support.
1954526ebbcSRichard Gong
1969db69df4STingHan Shenconfig MTK_ADSP_IPC
1979db69df4STingHan Shen	tristate "MTK ADSP IPC Protocol driver"
1989db69df4STingHan Shen	depends on MTK_ADSP_MBOX
1999db69df4STingHan Shen	help
2009db69df4STingHan Shen	  Say yes here to add support for the MediaTek ADSP IPC
2019db69df4STingHan Shen	  between host AP (Linux) and the firmware running on ADSP.
2029db69df4STingHan Shen	  ADSP exists on some mtk processors.
2039db69df4STingHan Shen	  Client might use shared memory to exchange information with ADSP.
2049db69df4STingHan Shen
205d391c582SJavier Martinez Canillasconfig SYSFB
206d391c582SJavier Martinez Canillas	bool
2078b766b0fSMichal Suchanek	select BOOT_VESA_SUPPORT
20875fa9b7eSThomas Zimmermann	select SCREEN_INFO
209d391c582SJavier Martinez Canillas
2108633ef82SJavier Martinez Canillasconfig SYSFB_SIMPLEFB
211*cc79eaf8SThomas Zimmermann	bool "Mark VGA/VBE/EFI FB as generic system framebuffer (deprecated)"
212a4a072d9SMichal Suchanek	depends on X86 || EFI
213a4a072d9SMichal Suchanek	select SYSFB
214d391c582SJavier Martinez Canillas	help
215*cc79eaf8SThomas Zimmermann	  Firmware often provides initial graphics framebuffers so the BIOS,
216d391c582SJavier Martinez Canillas	  bootloader or kernel can show basic video-output during boot for
217*cc79eaf8SThomas Zimmermann	  user-guidance and debugging.
218d391c582SJavier Martinez Canillas
219*cc79eaf8SThomas Zimmermann	  This option, if enabled, marks VBE/EFI framebuffers as system
220*cc79eaf8SThomas Zimmermann	  framebuffers so the generic simpledrm driver can be used.
221d391c582SJavier Martinez Canillas
222*cc79eaf8SThomas Zimmermann	  This option is deprecated and will be removed in the near future. If
223*cc79eaf8SThomas Zimmermann	  unsure, say N and select efidrm, vesadrm instead. The dedicated DRM
224*cc79eaf8SThomas Zimmermann	  drivers provide the same functionality plus additional features.
225d391c582SJavier Martinez Canillas
226e4b3cbd8SMichal Wilczynskiconfig TH1520_AON_PROTOCOL
227e4b3cbd8SMichal Wilczynski	tristate "Always-On firmware protocol"
228e4b3cbd8SMichal Wilczynski	depends on ARCH_THEAD || COMPILE_TEST
22951f0b891SArnd Bergmann	depends on MAILBOX
230e4b3cbd8SMichal Wilczynski	help
231e4b3cbd8SMichal Wilczynski	  Power, clock, and resource management capabilities on the TH1520 SoC are
232e4b3cbd8SMichal Wilczynski	  managed by the E902 core. Firmware running on this core communicates with
233e4b3cbd8SMichal Wilczynski	  the kernel through the Always-On protocol, using hardware mailbox as a medium.
234e4b3cbd8SMichal Wilczynski	  Say yes if you need such capabilities.
235e4b3cbd8SMichal Wilczynski
236aa276781SNishanth Menonconfig TI_SCI_PROTOCOL
237aa276781SNishanth Menon	tristate "TI System Control Interface (TISCI) Message Protocol"
238aa276781SNishanth Menon	depends on TI_MESSAGE_MANAGER
2399a9b7cd7SGuillaume La Roque	default ARCH_K3
240aa276781SNishanth Menon	help
241aa276781SNishanth Menon	  TI System Control Interface (TISCI) Message Protocol is used to manage
242aa276781SNishanth Menon	  compute systems such as ARM, DSP etc with the system controller in
243aa276781SNishanth Menon	  complex System on Chip(SoC) such as those found on certain keystone
244aa276781SNishanth Menon	  generation SoC from TI.
245aa276781SNishanth Menon
246aa276781SNishanth Menon	  System controller provides various facilities including power
247aa276781SNishanth Menon	  management function support.
248aa276781SNishanth Menon
249aa276781SNishanth Menon	  This protocol library is used by client drivers to use the features
250aa276781SNishanth Menon	  provided by the system controller.
251aa276781SNishanth Menon
2524cb5d9ecSThierry Redingconfig TRUSTED_FOUNDATIONS
2534cb5d9ecSThierry Reding	bool "Trusted Foundations secure monitor support"
254cad47b32SArnd Bergmann	depends on ARM && CPU_V7
2554cb5d9ecSThierry Reding	help
2564cb5d9ecSThierry Reding	  Some devices (including most early Tegra-based consumer devices on
2574cb5d9ecSThierry Reding	  the market) are booted with the Trusted Foundations secure monitor
2584cb5d9ecSThierry Reding	  active, requiring some core operations to be performed by the secure
2594cb5d9ecSThierry Reding	  monitor instead of the kernel.
2604cb5d9ecSThierry Reding
2614cb5d9ecSThierry Reding	  This option allows the kernel to invoke the secure monitor whenever
2624cb5d9ecSThierry Reding	  required on devices using Trusted Foundations. See the functions and
2634cb5d9ecSThierry Reding	  comments in linux/firmware/trusted_foundations.h or the device tree
2644cb5d9ecSThierry Reding	  bindings for "tlm,trusted-foundations" for details on how to use it.
2654cb5d9ecSThierry Reding
2664cb5d9ecSThierry Reding	  Choose N if you don't know what this is about.
2674cb5d9ecSThierry Reding
268389711b3SMarek Behúnconfig TURRIS_MOX_RWTM
269389711b3SMarek Behún	tristate "Turris Mox rWTM secure firmware driver"
270389711b3SMarek Behún	depends on ARCH_MVEBU || COMPILE_TEST
271389711b3SMarek Behún	depends on HAS_DMA && OF
272389711b3SMarek Behún	depends on MAILBOX
273389711b3SMarek Behún	select HW_RANDOM
274389711b3SMarek Behún	select ARMADA_37XX_RWTM_MBOX
275389711b3SMarek Behún	help
276389711b3SMarek Behún	  This driver communicates with the firmware on the Cortex-M3 secure
277389711b3SMarek Behún	  processor of the Turris Mox router. Enable if you are building for
278389711b3SMarek Behún	  Turris Mox, and you will be able to read the device serial number and
279389711b3SMarek Behún	  other manufacturing data and also utilize the Entropy Bit Generator
280389711b3SMarek Behún	  for hardware random number generation.
281389711b3SMarek Behún
282ba8755abSMarek Behúnif TURRIS_MOX_RWTM
283ba8755abSMarek Behún
284ba8755abSMarek Behúnconfig TURRIS_MOX_RWTM_KEYCTL
285ba8755abSMarek Behún	bool "Turris Mox rWTM ECDSA message signing"
286ba8755abSMarek Behún	default y
287ba8755abSMarek Behún	depends on KEYS
288ba8755abSMarek Behún	depends on ASYMMETRIC_KEY_TYPE
289ba8755abSMarek Behún	select CZNIC_PLATFORMS
290ba8755abSMarek Behún	select TURRIS_SIGNING_KEY
291ba8755abSMarek Behún	help
292ba8755abSMarek Behún	  Say Y here to add support for ECDSA message signing with board private
293ba8755abSMarek Behún	  key (each Turris Mox has an ECDSA private key generated in the secure
294ba8755abSMarek Behún	  coprocessor when manufactured). This functionality is exposed via the
295ba8755abSMarek Behún	  keyctl() syscall.
296ba8755abSMarek Behún
297ba8755abSMarek Behúnendif # TURRIS_MOX_RWTM
298ba8755abSMarek Behún
299e7818584SSudeep Hollasource "drivers/firmware/arm_ffa/Kconfig"
300f6e734a8SRafał Miłeckisource "drivers/firmware/broadcom/Kconfig"
301f6bc909eSSimon Trimmersource "drivers/firmware/cirrus/Kconfig"
30274c5b31cSMike Waychisonsource "drivers/firmware/google/Kconfig"
30304851772SMatt Flemingsource "drivers/firmware/efi/Kconfig"
304edbee095SDong Aishengsource "drivers/firmware/imx/Kconfig"
3052c4ddb21SCarlo Caionesource "drivers/firmware/meson/Kconfig"
306ec5b0f11SConor Dooleysource "drivers/firmware/microchip/Kconfig"
307e5bfb21dSSudeep Hollasource "drivers/firmware/psci/Kconfig"
308bdac188eSBartosz Golaszewskisource "drivers/firmware/qcom/Kconfig"
309a88927b5STudor Ambarussource "drivers/firmware/samsung/Kconfig"
310e5bfb21dSSudeep Hollasource "drivers/firmware/smccc/Kconfig"
311ca791d7fSThierry Redingsource "drivers/firmware/tegra/Kconfig"
31276582671SRajan Vajasource "drivers/firmware/xilinx/Kconfig"
31374c5b31cSMike Waychison
3141da177e4SLinus Torvaldsendmenu
315