xref: /openbmc/linux/drivers/firmware/Kconfig (revision 5b4d995d)
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
318bec4337SSudeep Hollaconfig ARM_SCPI_POWER_DOMAIN
328bec4337SSudeep Holla	tristate "SCPI power domain driver"
33e517dfe6SArnd Bergmann	depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF)
348bec4337SSudeep Holla	default y
358bec4337SSudeep Holla	select PM_GENERIC_DOMAINS if PM
368bec4337SSudeep Holla	help
378bec4337SSudeep Holla	  This enables support for the SCPI power domains which can be
388bec4337SSudeep Holla	  enabled or disabled via the SCP firmware
398bec4337SSudeep Holla
40ad6eb31eSJames Morseconfig ARM_SDE_INTERFACE
41ad6eb31eSJames Morse	bool "ARM Software Delegated Exception Interface (SDEI)"
42ad6eb31eSJames Morse	depends on ARM64
43dc4e8c07SShuai Xue	depends on ACPI_APEI_GHES
44ad6eb31eSJames Morse	help
45ad6eb31eSJames Morse	  The Software Delegated Exception Interface (SDEI) is an ARM
46ad6eb31eSJames Morse	  standard for registering callbacks from the platform firmware
47ad6eb31eSJames Morse	  into the OS. This is typically used to implement RAS notifications.
48ad6eb31eSJames Morse
491da177e4SLinus Torvaldsconfig EDD
505d18639aSChris Wedgwood	tristate "BIOS Enhanced Disk Drive calls determine boot disk"
519b6e3e42SMike Frysinger	depends on X86
521da177e4SLinus Torvalds	help
531da177e4SLinus Torvalds	  Say Y or M here if you want to enable BIOS Enhanced Disk Drive
541da177e4SLinus Torvalds	  Services real mode BIOS calls to determine which disk
551da177e4SLinus Torvalds	  BIOS tries boot from.  This information is then exported via sysfs.
561da177e4SLinus Torvalds
571da177e4SLinus Torvalds	  This option is experimental and is known to fail to boot on some
581da177e4SLinus Torvalds          obscure configurations. Most disk controller BIOS vendors do
591da177e4SLinus Torvalds          not yet implement this feature.
601da177e4SLinus Torvalds
618c4dd606STim Gardnerconfig EDD_OFF
628c4dd606STim Gardner	bool "Sets default behavior for EDD detection to off"
638c4dd606STim Gardner	depends on EDD
648c4dd606STim Gardner	default n
658c4dd606STim Gardner	help
668c4dd606STim Gardner	  Say Y if you want EDD disabled by default, even though it is compiled into the
678c4dd606STim Gardner	  kernel. Say N if you want EDD enabled by default. EDD can be dynamically set
688c4dd606STim Gardner	  using the kernel parameter 'edd={on|skipmbr|off}'.
698c4dd606STim Gardner
7069ac9cd6SBernhard Walleconfig FIRMWARE_MEMMAP
716a108a14SDavid Rientjes    bool "Add firmware-provided memory map to sysfs" if EXPERT
729b6e3e42SMike Frysinger    default X86
7369ac9cd6SBernhard Walle    help
7469ac9cd6SBernhard Walle      Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap.
7569ac9cd6SBernhard Walle      That memory map is used for example by kexec to set up parameter area
7669ac9cd6SBernhard Walle      for the next kernel, but can also be used for debugging purposes.
7769ac9cd6SBernhard Walle
7869ac9cd6SBernhard Walle      See also Documentation/ABI/testing/sysfs-firmware-memmap.
7969ac9cd6SBernhard Walle
801da177e4SLinus Torvaldsconfig EFI_PCDP
811da177e4SLinus Torvalds	bool "Console device selection via EFI PCDP or HCDP table"
821da177e4SLinus Torvalds	depends on ACPI && EFI && IA64
831da177e4SLinus Torvalds	default y if IA64
841da177e4SLinus Torvalds	help
851da177e4SLinus Torvalds	  If your firmware supplies the PCDP table, and you want to
861da177e4SLinus Torvalds	  automatically use the primary console device it describes
871da177e4SLinus Torvalds	  as the Linux console, say Y here.
881da177e4SLinus Torvalds
891da177e4SLinus Torvalds	  If your firmware supplies the HCDP table, and you want to
901da177e4SLinus Torvalds	  use the first serial port it describes as the Linux console,
911da177e4SLinus Torvalds	  say Y here.  If your EFI ConOut path contains only a UART
921da177e4SLinus Torvalds	  device, it will become the console automatically.  Otherwise,
931da177e4SLinus Torvalds	  you must specify the "console=hcdp" kernel boot argument.
941da177e4SLinus Torvalds
951da177e4SLinus Torvalds	  Neither the PCDP nor the HCDP affects naming of serial devices,
961da177e4SLinus Torvalds	  so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending
971da177e4SLinus Torvalds	  on how the driver discovers devices.
981da177e4SLinus Torvalds
991da177e4SLinus Torvalds	  You must also enable the appropriate drivers (serial, VGA, etc.)
1001da177e4SLinus Torvalds
101631dd1a8SJustin P. Mattock	  See DIG64_HCDPv20_042804.pdf available from
102631dd1a8SJustin P. Mattock	  <http://www.dig64.org/specifications/>
1031da177e4SLinus Torvalds
1044f5c791aSLennart Poetteringconfig DMIID
1054f5c791aSLennart Poettering    bool "Export DMI identification via sysfs to userspace"
1064f5c791aSLennart Poettering    depends on DMI
1074f5c791aSLennart Poettering    default y
1084f5c791aSLennart Poettering	help
1094f5c791aSLennart Poettering	  Say Y here if you want to query SMBIOS/DMI system identification
1104f5c791aSLennart Poettering	  information from userspace through /sys/class/dmi/id/ or if you want
1114f5c791aSLennart Poettering	  DMI-based module auto-loading.
1124f5c791aSLennart Poettering
113948af1f0SMike Waychisonconfig DMI_SYSFS
114948af1f0SMike Waychison	tristate "DMI table support in sysfs"
115948af1f0SMike Waychison	depends on SYSFS && DMI
116948af1f0SMike Waychison	default n
117948af1f0SMike Waychison	help
118948af1f0SMike Waychison	  Say Y or M here to enable the exporting of the raw DMI table
119948af1f0SMike Waychison	  data via sysfs.  This is useful for consuming the data without
120948af1f0SMike Waychison	  requiring any access to /dev/mem at all.  Tables are found
121948af1f0SMike Waychison	  under /sys/firmware/dmi when this option is enabled and
122948af1f0SMike Waychison	  loaded.
123948af1f0SMike Waychison
124cf074402SArd Biesheuvelconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK
125cf074402SArd Biesheuvel	bool
126cf074402SArd Biesheuvel
127138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT_FIND
128138fe4e0SKonrad Rzeszutek	bool "iSCSI Boot Firmware Table Attributes"
12994bccc34SThomas Tai	depends on X86 && ISCSI_IBFT
130138fe4e0SKonrad Rzeszutek	default n
131138fe4e0SKonrad Rzeszutek	help
132138fe4e0SKonrad Rzeszutek	  This option enables the kernel to find the region of memory
133138fe4e0SKonrad Rzeszutek	  in which the ISCSI Boot Firmware Table (iBFT) resides. This
134138fe4e0SKonrad Rzeszutek	  is necessary for iSCSI Boot Firmware Table Attributes module to work
135138fe4e0SKonrad Rzeszutek	  properly.
136138fe4e0SKonrad Rzeszutek
137138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT
138138fe4e0SKonrad Rzeszutek	tristate "iSCSI Boot Firmware Table Attributes module"
139b33a84a3SMike Christie	select ISCSI_BOOT_SYSFS
14094bccc34SThomas Tai	select ISCSI_IBFT_FIND if X86
14194bccc34SThomas Tai	depends on ACPI && SCSI && SCSI_LOWLEVEL
142138fe4e0SKonrad Rzeszutek	default	n
143138fe4e0SKonrad Rzeszutek	help
144138fe4e0SKonrad Rzeszutek	  This option enables support for detection and exposing of iSCSI
145138fe4e0SKonrad Rzeszutek	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to
146138fe4e0SKonrad Rzeszutek	  detect iSCSI boot parameters dynamically during system boot, say Y.
147138fe4e0SKonrad Rzeszutek	  Otherwise, say N.
148138fe4e0SKonrad Rzeszutek
1494e3d6065SEric Anholtconfig RASPBERRYPI_FIRMWARE
15083a06a10SNicolas Saenz Julienne	tristate "Raspberry Pi Firmware Driver"
1514e3d6065SEric Anholt	depends on BCM2835_MBOX
1524e3d6065SEric Anholt	help
1534e3d6065SEric Anholt	  This option enables support for communicating with the firmware on the
1544e3d6065SEric Anholt	  Raspberry Pi.
1554e3d6065SEric Anholt
15675f3e8e4SGabriel Somloconfig FW_CFG_SYSFS
15775f3e8e4SGabriel Somlo	tristate "QEMU fw_cfg device support in sysfs"
1586b698713SHelge Deller	depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86)
15928c09ec4SArnd Bergmann	depends on HAS_IOPORT_MAP
16075f3e8e4SGabriel Somlo	default n
16175f3e8e4SGabriel Somlo	help
16275f3e8e4SGabriel Somlo	  Say Y or M here to enable the exporting of the QEMU firmware
16375f3e8e4SGabriel Somlo	  configuration (fw_cfg) file entries via sysfs. Entries are
16475f3e8e4SGabriel Somlo	  found under /sys/firmware/fw_cfg when this option is enabled
16575f3e8e4SGabriel Somlo	  and loaded.
16675f3e8e4SGabriel Somlo
16775f3e8e4SGabriel Somloconfig FW_CFG_SYSFS_CMDLINE
16875f3e8e4SGabriel Somlo	bool "QEMU fw_cfg device parameter parsing"
16975f3e8e4SGabriel Somlo	depends on FW_CFG_SYSFS
17075f3e8e4SGabriel Somlo	help
17175f3e8e4SGabriel Somlo	  Allow the qemu_fw_cfg device to be initialized via the kernel
17275f3e8e4SGabriel Somlo	  command line or using a module parameter.
17375f3e8e4SGabriel Somlo	  WARNING: Using incorrect parameters (base address in particular)
17475f3e8e4SGabriel Somlo	  may crash your system.
17575f3e8e4SGabriel Somlo
1767ca5ce89SRichard Gongconfig INTEL_STRATIX10_SERVICE
1777ca5ce89SRichard Gong	tristate "Intel Stratix10 Service Layer"
17838ad957bSKrzysztof Kozlowski	depends on ARCH_INTEL_SOCFPGA && ARM64 && HAVE_ARM_SMCCC
1797ca5ce89SRichard Gong	default n
1807ca5ce89SRichard Gong	help
1817ca5ce89SRichard Gong	  Intel Stratix10 service layer runs at privileged exception level,
1827ca5ce89SRichard Gong	  interfaces with the service providers (FPGA manager is one of them)
1837ca5ce89SRichard Gong	  and manages secure monitor call to communicate with secure monitor
1847ca5ce89SRichard Gong	  software at secure monitor exception level.
1857ca5ce89SRichard Gong
1867ca5ce89SRichard Gong	  Say Y here if you want Stratix10 service layer support.
1877ca5ce89SRichard Gong
1884526ebbcSRichard Gongconfig INTEL_STRATIX10_RSU
1894526ebbcSRichard Gong	tristate "Intel Stratix10 Remote System Update"
1904526ebbcSRichard Gong	depends on INTEL_STRATIX10_SERVICE
1914526ebbcSRichard Gong	help
1924526ebbcSRichard Gong	  The Intel Remote System Update (RSU) driver exposes interfaces
1934526ebbcSRichard Gong	  access through the Intel Service Layer to user space via sysfs
1944526ebbcSRichard Gong	  device attribute nodes. The RSU interfaces report/control some of
1954526ebbcSRichard Gong	  the optional RSU features of the Stratix 10 SoC FPGA.
1964526ebbcSRichard Gong
1974526ebbcSRichard Gong	  The RSU provides a way for customers to update the boot
1984526ebbcSRichard Gong	  configuration of a Stratix 10 SoC device with significantly reduced
1994526ebbcSRichard Gong	  risk of corrupting the bitstream storage and bricking the system.
2004526ebbcSRichard Gong
2014526ebbcSRichard Gong	  Enable RSU support if you are using an Intel SoC FPGA with the RSU
2024526ebbcSRichard Gong	  feature enabled and you want Linux user space control.
2034526ebbcSRichard Gong
2044526ebbcSRichard Gong	  Say Y here if you want Intel RSU support.
2054526ebbcSRichard Gong
2069db69df4STingHan Shenconfig MTK_ADSP_IPC
2079db69df4STingHan Shen	tristate "MTK ADSP IPC Protocol driver"
2089db69df4STingHan Shen	depends on MTK_ADSP_MBOX
2099db69df4STingHan Shen	help
2109db69df4STingHan Shen	  Say yes here to add support for the MediaTek ADSP IPC
2119db69df4STingHan Shen	  between host AP (Linux) and the firmware running on ADSP.
2129db69df4STingHan Shen	  ADSP exists on some mtk processors.
2139db69df4STingHan Shen	  Client might use shared memory to exchange information with ADSP.
2149db69df4STingHan Shen
215916f743dSKumar Galaconfig QCOM_SCM
216424953cfSArnd Bergmann	tristate
217916f743dSKumar Gala
2188c1b7dc9SBjorn Anderssonconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT
2198c1b7dc9SBjorn Andersson	bool "Qualcomm download mode enabled by default"
2208c1b7dc9SBjorn Andersson	depends on QCOM_SCM
2218c1b7dc9SBjorn Andersson	help
2228c1b7dc9SBjorn Andersson	  A device with "download mode" enabled will upon an unexpected
2238c1b7dc9SBjorn Andersson	  warm-restart enter a special debug mode that allows the user to
2248c1b7dc9SBjorn Andersson	  "download" memory content over USB for offline postmortem analysis.
2258c1b7dc9SBjorn Andersson	  The feature can be enabled/disabled on the kernel command line.
2268c1b7dc9SBjorn Andersson
2278c1b7dc9SBjorn Andersson	  Say Y here to enable "download mode" by default.
2288c1b7dc9SBjorn Andersson
229d391c582SJavier Martinez Canillasconfig SYSFB
230d391c582SJavier Martinez Canillas	bool
2318b766b0fSMichal Suchanek	select BOOT_VESA_SUPPORT
232*5b4d995dSThomas Zimmermann	select SCREEN_INFO
233d391c582SJavier Martinez Canillas
2348633ef82SJavier Martinez Canillasconfig SYSFB_SIMPLEFB
235d391c582SJavier Martinez Canillas	bool "Mark VGA/VBE/EFI FB as generic system framebuffer"
236a4a072d9SMichal Suchanek	depends on X86 || EFI
237a4a072d9SMichal Suchanek	select SYSFB
238d391c582SJavier Martinez Canillas	help
239d391c582SJavier Martinez Canillas	  Firmwares often provide initial graphics framebuffers so the BIOS,
240d391c582SJavier Martinez Canillas	  bootloader or kernel can show basic video-output during boot for
241d391c582SJavier Martinez Canillas	  user-guidance and debugging. Historically, x86 used the VESA BIOS
242d391c582SJavier Martinez Canillas	  Extensions and EFI-framebuffers for this, which are mostly limited
2438633ef82SJavier Martinez Canillas	  to x86 BIOS or EFI systems.
244d391c582SJavier Martinez Canillas	  This option, if enabled, marks VGA/VBE/EFI framebuffers as generic
245d391c582SJavier Martinez Canillas	  framebuffers so the new generic system-framebuffer drivers can be
2468633ef82SJavier Martinez Canillas	  used instead. If the framebuffer is not compatible with the generic
247d391c582SJavier Martinez Canillas	  modes, it is advertised as fallback platform framebuffer so legacy
248d391c582SJavier Martinez Canillas	  drivers like efifb, vesafb and uvesafb can pick it up.
249d391c582SJavier Martinez Canillas	  If this option is not selected, all system framebuffers are always
250d391c582SJavier Martinez Canillas	  marked as fallback platform framebuffers as usual.
251d391c582SJavier Martinez Canillas
252d391c582SJavier Martinez Canillas	  Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will
253d391c582SJavier Martinez Canillas	  not be able to pick up generic system framebuffers if this option
254d391c582SJavier Martinez Canillas	  is selected. You are highly encouraged to enable simplefb as
255d391c582SJavier Martinez Canillas	  replacement if you select this option. simplefb can correctly deal
256d391c582SJavier Martinez Canillas	  with generic system framebuffers. But you should still keep vesafb
257d391c582SJavier Martinez Canillas	  and others enabled as fallback if a system framebuffer is
258d391c582SJavier Martinez Canillas	  incompatible with simplefb.
259d391c582SJavier Martinez Canillas
260d391c582SJavier Martinez Canillas	  If unsure, say Y.
261d391c582SJavier Martinez Canillas
262aa276781SNishanth Menonconfig TI_SCI_PROTOCOL
263aa276781SNishanth Menon	tristate "TI System Control Interface (TISCI) Message Protocol"
264aa276781SNishanth Menon	depends on TI_MESSAGE_MANAGER
265aa276781SNishanth Menon	help
266aa276781SNishanth Menon	  TI System Control Interface (TISCI) Message Protocol is used to manage
267aa276781SNishanth Menon	  compute systems such as ARM, DSP etc with the system controller in
268aa276781SNishanth Menon	  complex System on Chip(SoC) such as those found on certain keystone
269aa276781SNishanth Menon	  generation SoC from TI.
270aa276781SNishanth Menon
271aa276781SNishanth Menon	  System controller provides various facilities including power
272aa276781SNishanth Menon	  management function support.
273aa276781SNishanth Menon
274aa276781SNishanth Menon	  This protocol library is used by client drivers to use the features
275aa276781SNishanth Menon	  provided by the system controller.
276aa276781SNishanth Menon
2774cb5d9ecSThierry Redingconfig TRUSTED_FOUNDATIONS
2784cb5d9ecSThierry Reding	bool "Trusted Foundations secure monitor support"
279cad47b32SArnd Bergmann	depends on ARM && CPU_V7
2804cb5d9ecSThierry Reding	help
2814cb5d9ecSThierry Reding	  Some devices (including most early Tegra-based consumer devices on
2824cb5d9ecSThierry Reding	  the market) are booted with the Trusted Foundations secure monitor
2834cb5d9ecSThierry Reding	  active, requiring some core operations to be performed by the secure
2844cb5d9ecSThierry Reding	  monitor instead of the kernel.
2854cb5d9ecSThierry Reding
2864cb5d9ecSThierry Reding	  This option allows the kernel to invoke the secure monitor whenever
2874cb5d9ecSThierry Reding	  required on devices using Trusted Foundations. See the functions and
2884cb5d9ecSThierry Reding	  comments in linux/firmware/trusted_foundations.h or the device tree
2894cb5d9ecSThierry Reding	  bindings for "tlm,trusted-foundations" for details on how to use it.
2904cb5d9ecSThierry Reding
2914cb5d9ecSThierry Reding	  Choose N if you don't know what this is about.
2924cb5d9ecSThierry Reding
293389711b3SMarek Behúnconfig TURRIS_MOX_RWTM
294389711b3SMarek Behún	tristate "Turris Mox rWTM secure firmware driver"
295389711b3SMarek Behún	depends on ARCH_MVEBU || COMPILE_TEST
296389711b3SMarek Behún	depends on HAS_DMA && OF
297389711b3SMarek Behún	depends on MAILBOX
298389711b3SMarek Behún	select HW_RANDOM
299389711b3SMarek Behún	select ARMADA_37XX_RWTM_MBOX
300389711b3SMarek Behún	help
301389711b3SMarek Behún	  This driver communicates with the firmware on the Cortex-M3 secure
302389711b3SMarek Behún	  processor of the Turris Mox router. Enable if you are building for
303389711b3SMarek Behún	  Turris Mox, and you will be able to read the device serial number and
304389711b3SMarek Behún	  other manufacturing data and also utilize the Entropy Bit Generator
305389711b3SMarek Behún	  for hardware random number generation.
306389711b3SMarek Behún
307e7818584SSudeep Hollasource "drivers/firmware/arm_ffa/Kconfig"
308f6e734a8SRafał Miłeckisource "drivers/firmware/broadcom/Kconfig"
309f6bc909eSSimon Trimmersource "drivers/firmware/cirrus/Kconfig"
31074c5b31cSMike Waychisonsource "drivers/firmware/google/Kconfig"
31104851772SMatt Flemingsource "drivers/firmware/efi/Kconfig"
312edbee095SDong Aishengsource "drivers/firmware/imx/Kconfig"
3132c4ddb21SCarlo Caionesource "drivers/firmware/meson/Kconfig"
314e5bfb21dSSudeep Hollasource "drivers/firmware/psci/Kconfig"
315e5bfb21dSSudeep Hollasource "drivers/firmware/smccc/Kconfig"
316ca791d7fSThierry Redingsource "drivers/firmware/tegra/Kconfig"
31776582671SRajan Vajasource "drivers/firmware/xilinx/Kconfig"
31874c5b31cSMike Waychison
3191da177e4SLinus Torvaldsendmenu
320