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 1066d90f6eSSudeep Holla tristate "ARM System Control and Management Interface (SCMI) Message Protocol" 11aa4f886fSSudeep Holla depends on ARM || ARM64 || COMPILE_TEST 12c05b0796SEtienne Carriere depends on MAILBOX || HAVE_ARM_SMCCC_DISCOVERY 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 5454da51a8SColin Ian King SCP controls most of the power management 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 18183a06a10SNicolas Saenz Julienne tristate "Raspberry Pi Firmware Driver" 1824e3d6065SEric Anholt depends on BCM2835_MBOX 1834e3d6065SEric Anholt help 1844e3d6065SEric Anholt This option enables support for communicating with the firmware on the 1854e3d6065SEric Anholt Raspberry Pi. 1864e3d6065SEric Anholt 18775f3e8e4SGabriel Somloconfig FW_CFG_SYSFS 18875f3e8e4SGabriel Somlo tristate "QEMU fw_cfg device support in sysfs" 1896b698713SHelge Deller depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86) 19028c09ec4SArnd Bergmann depends on HAS_IOPORT_MAP 19175f3e8e4SGabriel Somlo default n 19275f3e8e4SGabriel Somlo help 19375f3e8e4SGabriel Somlo Say Y or M here to enable the exporting of the QEMU firmware 19475f3e8e4SGabriel Somlo configuration (fw_cfg) file entries via sysfs. Entries are 19575f3e8e4SGabriel Somlo found under /sys/firmware/fw_cfg when this option is enabled 19675f3e8e4SGabriel Somlo and loaded. 19775f3e8e4SGabriel Somlo 19875f3e8e4SGabriel Somloconfig FW_CFG_SYSFS_CMDLINE 19975f3e8e4SGabriel Somlo bool "QEMU fw_cfg device parameter parsing" 20075f3e8e4SGabriel Somlo depends on FW_CFG_SYSFS 20175f3e8e4SGabriel Somlo help 20275f3e8e4SGabriel Somlo Allow the qemu_fw_cfg device to be initialized via the kernel 20375f3e8e4SGabriel Somlo command line or using a module parameter. 20475f3e8e4SGabriel Somlo WARNING: Using incorrect parameters (base address in particular) 20575f3e8e4SGabriel Somlo may crash your system. 20675f3e8e4SGabriel Somlo 2077ca5ce89SRichard Gongconfig INTEL_STRATIX10_SERVICE 2087ca5ce89SRichard Gong tristate "Intel Stratix10 Service Layer" 20938ad957bSKrzysztof Kozlowski depends on ARCH_INTEL_SOCFPGA && ARM64 && HAVE_ARM_SMCCC 2107ca5ce89SRichard Gong default n 2117ca5ce89SRichard Gong help 2127ca5ce89SRichard Gong Intel Stratix10 service layer runs at privileged exception level, 2137ca5ce89SRichard Gong interfaces with the service providers (FPGA manager is one of them) 2147ca5ce89SRichard Gong and manages secure monitor call to communicate with secure monitor 2157ca5ce89SRichard Gong software at secure monitor exception level. 2167ca5ce89SRichard Gong 2177ca5ce89SRichard Gong Say Y here if you want Stratix10 service layer support. 2187ca5ce89SRichard Gong 2194526ebbcSRichard Gongconfig INTEL_STRATIX10_RSU 2204526ebbcSRichard Gong tristate "Intel Stratix10 Remote System Update" 2214526ebbcSRichard Gong depends on INTEL_STRATIX10_SERVICE 2224526ebbcSRichard Gong help 2234526ebbcSRichard Gong The Intel Remote System Update (RSU) driver exposes interfaces 2244526ebbcSRichard Gong access through the Intel Service Layer to user space via sysfs 2254526ebbcSRichard Gong device attribute nodes. The RSU interfaces report/control some of 2264526ebbcSRichard Gong the optional RSU features of the Stratix 10 SoC FPGA. 2274526ebbcSRichard Gong 2284526ebbcSRichard Gong The RSU provides a way for customers to update the boot 2294526ebbcSRichard Gong configuration of a Stratix 10 SoC device with significantly reduced 2304526ebbcSRichard Gong risk of corrupting the bitstream storage and bricking the system. 2314526ebbcSRichard Gong 2324526ebbcSRichard Gong Enable RSU support if you are using an Intel SoC FPGA with the RSU 2334526ebbcSRichard Gong feature enabled and you want Linux user space control. 2344526ebbcSRichard Gong 2354526ebbcSRichard Gong Say Y here if you want Intel RSU support. 2364526ebbcSRichard Gong 237916f743dSKumar Galaconfig QCOM_SCM 238916f743dSKumar Gala bool 239916f743dSKumar Gala depends on ARM || ARM64 2402954a6f1SHe Ying depends on HAVE_ARM_SMCCC 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 254d391c582SJavier Martinez Canillasconfig SYSFB 255d391c582SJavier Martinez Canillas bool 256d391c582SJavier Martinez Canillas default y 257*71260b9aSJavier Martinez Canillas depends on X86 || EFI 258d391c582SJavier Martinez Canillas 2598633ef82SJavier Martinez Canillasconfig SYSFB_SIMPLEFB 260d391c582SJavier Martinez Canillas bool "Mark VGA/VBE/EFI FB as generic system framebuffer" 261d391c582SJavier Martinez Canillas depends on SYSFB 262d391c582SJavier Martinez Canillas help 263d391c582SJavier Martinez Canillas Firmwares often provide initial graphics framebuffers so the BIOS, 264d391c582SJavier Martinez Canillas bootloader or kernel can show basic video-output during boot for 265d391c582SJavier Martinez Canillas user-guidance and debugging. Historically, x86 used the VESA BIOS 266d391c582SJavier Martinez Canillas Extensions and EFI-framebuffers for this, which are mostly limited 2678633ef82SJavier Martinez Canillas to x86 BIOS or EFI systems. 268d391c582SJavier Martinez Canillas This option, if enabled, marks VGA/VBE/EFI framebuffers as generic 269d391c582SJavier Martinez Canillas framebuffers so the new generic system-framebuffer drivers can be 2708633ef82SJavier Martinez Canillas used instead. If the framebuffer is not compatible with the generic 271d391c582SJavier Martinez Canillas modes, it is advertised as fallback platform framebuffer so legacy 272d391c582SJavier Martinez Canillas drivers like efifb, vesafb and uvesafb can pick it up. 273d391c582SJavier Martinez Canillas If this option is not selected, all system framebuffers are always 274d391c582SJavier Martinez Canillas marked as fallback platform framebuffers as usual. 275d391c582SJavier Martinez Canillas 276d391c582SJavier Martinez Canillas Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will 277d391c582SJavier Martinez Canillas not be able to pick up generic system framebuffers if this option 278d391c582SJavier Martinez Canillas is selected. You are highly encouraged to enable simplefb as 279d391c582SJavier Martinez Canillas replacement if you select this option. simplefb can correctly deal 280d391c582SJavier Martinez Canillas with generic system framebuffers. But you should still keep vesafb 281d391c582SJavier Martinez Canillas and others enabled as fallback if a system framebuffer is 282d391c582SJavier Martinez Canillas incompatible with simplefb. 283d391c582SJavier Martinez Canillas 284d391c582SJavier Martinez Canillas If unsure, say Y. 285d391c582SJavier Martinez Canillas 286aa276781SNishanth Menonconfig TI_SCI_PROTOCOL 287aa276781SNishanth Menon tristate "TI System Control Interface (TISCI) Message Protocol" 288aa276781SNishanth Menon depends on TI_MESSAGE_MANAGER 289aa276781SNishanth Menon help 290aa276781SNishanth Menon TI System Control Interface (TISCI) Message Protocol is used to manage 291aa276781SNishanth Menon compute systems such as ARM, DSP etc with the system controller in 292aa276781SNishanth Menon complex System on Chip(SoC) such as those found on certain keystone 293aa276781SNishanth Menon generation SoC from TI. 294aa276781SNishanth Menon 295aa276781SNishanth Menon System controller provides various facilities including power 296aa276781SNishanth Menon management function support. 297aa276781SNishanth Menon 298aa276781SNishanth Menon This protocol library is used by client drivers to use the features 299aa276781SNishanth Menon provided by the system controller. 300aa276781SNishanth Menon 3014cb5d9ecSThierry Redingconfig TRUSTED_FOUNDATIONS 3024cb5d9ecSThierry Reding bool "Trusted Foundations secure monitor support" 303cad47b32SArnd Bergmann depends on ARM && CPU_V7 3044cb5d9ecSThierry Reding help 3054cb5d9ecSThierry Reding Some devices (including most early Tegra-based consumer devices on 3064cb5d9ecSThierry Reding the market) are booted with the Trusted Foundations secure monitor 3074cb5d9ecSThierry Reding active, requiring some core operations to be performed by the secure 3084cb5d9ecSThierry Reding monitor instead of the kernel. 3094cb5d9ecSThierry Reding 3104cb5d9ecSThierry Reding This option allows the kernel to invoke the secure monitor whenever 3114cb5d9ecSThierry Reding required on devices using Trusted Foundations. See the functions and 3124cb5d9ecSThierry Reding comments in linux/firmware/trusted_foundations.h or the device tree 3134cb5d9ecSThierry Reding bindings for "tlm,trusted-foundations" for details on how to use it. 3144cb5d9ecSThierry Reding 3154cb5d9ecSThierry Reding Choose N if you don't know what this is about. 3164cb5d9ecSThierry Reding 317389711b3SMarek Behúnconfig TURRIS_MOX_RWTM 318389711b3SMarek Behún tristate "Turris Mox rWTM secure firmware driver" 319389711b3SMarek Behún depends on ARCH_MVEBU || COMPILE_TEST 320389711b3SMarek Behún depends on HAS_DMA && OF 321389711b3SMarek Behún depends on MAILBOX 322389711b3SMarek Behún select HW_RANDOM 323389711b3SMarek Behún select ARMADA_37XX_RWTM_MBOX 324389711b3SMarek Behún help 325389711b3SMarek Behún This driver communicates with the firmware on the Cortex-M3 secure 326389711b3SMarek Behún processor of the Turris Mox router. Enable if you are building for 327389711b3SMarek Behún Turris Mox, and you will be able to read the device serial number and 328389711b3SMarek Behún other manufacturing data and also utilize the Entropy Bit Generator 329389711b3SMarek Behún for hardware random number generation. 330389711b3SMarek Behún 331e7818584SSudeep Hollasource "drivers/firmware/arm_ffa/Kconfig" 332f6e734a8SRafał Miłeckisource "drivers/firmware/broadcom/Kconfig" 33374c5b31cSMike Waychisonsource "drivers/firmware/google/Kconfig" 33404851772SMatt Flemingsource "drivers/firmware/efi/Kconfig" 335edbee095SDong Aishengsource "drivers/firmware/imx/Kconfig" 3362c4ddb21SCarlo Caionesource "drivers/firmware/meson/Kconfig" 337e5bfb21dSSudeep Hollasource "drivers/firmware/psci/Kconfig" 338e5bfb21dSSudeep Hollasource "drivers/firmware/smccc/Kconfig" 339ca791d7fSThierry Redingsource "drivers/firmware/tegra/Kconfig" 34076582671SRajan Vajasource "drivers/firmware/xilinx/Kconfig" 34174c5b31cSMike Waychison 3421da177e4SLinus Torvaldsendmenu 343