1# SPDX-License-Identifier: GPL-2.0-only 2# 3# For a description of the syntax of this configuration file, 4# see Documentation/kbuild/kconfig-language.rst. 5# 6 7menu "Firmware Drivers" 8 9source "drivers/firmware/arm_scmi/Kconfig" 10 11config ARM_SCPI_PROTOCOL 12 tristate "ARM System Control and Power Interface (SCPI) Message Protocol" 13 depends on ARM || ARM64 || COMPILE_TEST 14 depends on MAILBOX 15 help 16 System Control and Power Interface (SCPI) Message Protocol is 17 defined for the purpose of communication between the Application 18 Cores(AP) and the System Control Processor(SCP). The MHU peripheral 19 provides a mechanism for inter-processor communication between SCP 20 and AP. 21 22 SCP controls most of the power management on the Application 23 Processors. It offers control and management of: the core/cluster 24 power states, various power domain DVFS including the core/cluster, 25 certain system clocks configuration, thermal sensors and many 26 others. 27 28 This protocol library provides interface for all the client drivers 29 making use of the features offered by the SCP. 30 31config ARM_SDE_INTERFACE 32 bool "ARM Software Delegated Exception Interface (SDEI)" 33 depends on ARM64 34 help 35 The Software Delegated Exception Interface (SDEI) is an ARM 36 standard for registering callbacks from the platform firmware 37 into the OS. This is typically used to implement RAS notifications. 38 39config EDD 40 tristate "BIOS Enhanced Disk Drive calls determine boot disk" 41 depends on X86 42 help 43 Say Y or M here if you want to enable BIOS Enhanced Disk Drive 44 Services real mode BIOS calls to determine which disk 45 BIOS tries boot from. This information is then exported via sysfs. 46 47 This option is experimental and is known to fail to boot on some 48 obscure configurations. Most disk controller BIOS vendors do 49 not yet implement this feature. 50 51config EDD_OFF 52 bool "Sets default behavior for EDD detection to off" 53 depends on EDD 54 default n 55 help 56 Say Y if you want EDD disabled by default, even though it is compiled into the 57 kernel. Say N if you want EDD enabled by default. EDD can be dynamically set 58 using the kernel parameter 'edd={on|skipmbr|off}'. 59 60config FIRMWARE_MEMMAP 61 bool "Add firmware-provided memory map to sysfs" if EXPERT 62 default X86 63 help 64 Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. 65 That memory map is used for example by kexec to set up parameter area 66 for the next kernel, but can also be used for debugging purposes. 67 68 See also Documentation/ABI/testing/sysfs-firmware-memmap. 69 70config DMIID 71 bool "Export DMI identification via sysfs to userspace" 72 depends on DMI 73 default y 74 help 75 Say Y here if you want to query SMBIOS/DMI system identification 76 information from userspace through /sys/class/dmi/id/ or if you want 77 DMI-based module auto-loading. 78 79config DMI_SYSFS 80 tristate "DMI table support in sysfs" 81 depends on SYSFS && DMI 82 default n 83 help 84 Say Y or M here to enable the exporting of the raw DMI table 85 data via sysfs. This is useful for consuming the data without 86 requiring any access to /dev/mem at all. Tables are found 87 under /sys/firmware/dmi when this option is enabled and 88 loaded. 89 90config DMI_SCAN_MACHINE_NON_EFI_FALLBACK 91 bool 92 93config ISCSI_IBFT_FIND 94 bool "iSCSI Boot Firmware Table Attributes" 95 depends on X86 && ISCSI_IBFT 96 default n 97 help 98 This option enables the kernel to find the region of memory 99 in which the ISCSI Boot Firmware Table (iBFT) resides. This 100 is necessary for iSCSI Boot Firmware Table Attributes module to work 101 properly. 102 103config ISCSI_IBFT 104 tristate "iSCSI Boot Firmware Table Attributes module" 105 select ISCSI_BOOT_SYSFS 106 select ISCSI_IBFT_FIND if X86 107 depends on ACPI && SCSI && SCSI_LOWLEVEL 108 default n 109 help 110 This option enables support for detection and exposing of iSCSI 111 Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to 112 detect iSCSI boot parameters dynamically during system boot, say Y. 113 Otherwise, say N. 114 115config RASPBERRYPI_FIRMWARE 116 tristate "Raspberry Pi Firmware Driver" 117 depends on ARCH_BCM2835 || COMPILE_TEST 118 depends on ARM || ARM64 119 depends on MAILBOX 120 default ARCH_BCM2835 121 help 122 This option enables support for communicating with the firmware on the 123 Raspberry Pi. 124 125config FW_CFG_SYSFS 126 tristate "QEMU fw_cfg device support in sysfs" 127 depends on SYSFS && (ARM || ARM64 || LOONGARCH || PARISC || PPC_PMAC || RISCV || SPARC || X86) 128 depends on HAS_IOPORT_MAP 129 default n 130 help 131 Say Y or M here to enable the exporting of the QEMU firmware 132 configuration (fw_cfg) file entries via sysfs. Entries are 133 found under /sys/firmware/fw_cfg when this option is enabled 134 and loaded. 135 136config FW_CFG_SYSFS_CMDLINE 137 bool "QEMU fw_cfg device parameter parsing" 138 depends on FW_CFG_SYSFS 139 help 140 Allow the qemu_fw_cfg device to be initialized via the kernel 141 command line or using a module parameter. 142 WARNING: Using incorrect parameters (base address in particular) 143 may crash your system. 144 145config INTEL_STRATIX10_SERVICE 146 tristate "Intel Stratix10 Service Layer" 147 depends on ARCH_INTEL_SOCFPGA && ARM64 && HAVE_ARM_SMCCC 148 default n 149 help 150 Intel Stratix10 service layer runs at privileged exception level, 151 interfaces with the service providers (FPGA manager is one of them) 152 and manages secure monitor call to communicate with secure monitor 153 software at secure monitor exception level. 154 155 Say Y here if you want Stratix10 service layer support. 156 157config INTEL_STRATIX10_RSU 158 tristate "Intel Stratix10 Remote System Update" 159 depends on INTEL_STRATIX10_SERVICE 160 help 161 The Intel Remote System Update (RSU) driver exposes interfaces 162 access through the Intel Service Layer to user space via sysfs 163 device attribute nodes. The RSU interfaces report/control some of 164 the optional RSU features of the Stratix 10 SoC FPGA. 165 166 The RSU provides a way for customers to update the boot 167 configuration of a Stratix 10 SoC device with significantly reduced 168 risk of corrupting the bitstream storage and bricking the system. 169 170 Enable RSU support if you are using an Intel SoC FPGA with the RSU 171 feature enabled and you want Linux user space control. 172 173 Say Y here if you want Intel RSU support. 174 175config MTK_ADSP_IPC 176 tristate "MTK ADSP IPC Protocol driver" 177 depends on MTK_ADSP_MBOX 178 help 179 Say yes here to add support for the MediaTek ADSP IPC 180 between host AP (Linux) and the firmware running on ADSP. 181 ADSP exists on some mtk processors. 182 Client might use shared memory to exchange information with ADSP. 183 184config SYSFB 185 bool 186 select BOOT_VESA_SUPPORT 187 select SCREEN_INFO 188 189config SYSFB_SIMPLEFB 190 bool "Mark VGA/VBE/EFI FB as generic system framebuffer" 191 depends on X86 || EFI 192 select SYSFB 193 help 194 Firmwares often provide initial graphics framebuffers so the BIOS, 195 bootloader or kernel can show basic video-output during boot for 196 user-guidance and debugging. Historically, x86 used the VESA BIOS 197 Extensions and EFI-framebuffers for this, which are mostly limited 198 to x86 BIOS or EFI systems. 199 This option, if enabled, marks VGA/VBE/EFI framebuffers as generic 200 framebuffers so the new generic system-framebuffer drivers can be 201 used instead. If the framebuffer is not compatible with the generic 202 modes, it is advertised as fallback platform framebuffer so legacy 203 drivers like efifb, vesafb and uvesafb can pick it up. 204 If this option is not selected, all system framebuffers are always 205 marked as fallback platform framebuffers as usual. 206 207 Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will 208 not be able to pick up generic system framebuffers if this option 209 is selected. You are highly encouraged to enable simplefb as 210 replacement if you select this option. simplefb can correctly deal 211 with generic system framebuffers. But you should still keep vesafb 212 and others enabled as fallback if a system framebuffer is 213 incompatible with simplefb. 214 215 If unsure, say Y. 216 217config TH1520_AON_PROTOCOL 218 tristate "Always-On firmware protocol" 219 depends on ARCH_THEAD || COMPILE_TEST 220 depends on MAILBOX 221 help 222 Power, clock, and resource management capabilities on the TH1520 SoC are 223 managed by the E902 core. Firmware running on this core communicates with 224 the kernel through the Always-On protocol, using hardware mailbox as a medium. 225 Say yes if you need such capabilities. 226 227config TI_SCI_PROTOCOL 228 tristate "TI System Control Interface (TISCI) Message Protocol" 229 depends on TI_MESSAGE_MANAGER 230 default ARCH_K3 231 help 232 TI System Control Interface (TISCI) Message Protocol is used to manage 233 compute systems such as ARM, DSP etc with the system controller in 234 complex System on Chip(SoC) such as those found on certain keystone 235 generation SoC from TI. 236 237 System controller provides various facilities including power 238 management function support. 239 240 This protocol library is used by client drivers to use the features 241 provided by the system controller. 242 243config TRUSTED_FOUNDATIONS 244 bool "Trusted Foundations secure monitor support" 245 depends on ARM && CPU_V7 246 help 247 Some devices (including most early Tegra-based consumer devices on 248 the market) are booted with the Trusted Foundations secure monitor 249 active, requiring some core operations to be performed by the secure 250 monitor instead of the kernel. 251 252 This option allows the kernel to invoke the secure monitor whenever 253 required on devices using Trusted Foundations. See the functions and 254 comments in linux/firmware/trusted_foundations.h or the device tree 255 bindings for "tlm,trusted-foundations" for details on how to use it. 256 257 Choose N if you don't know what this is about. 258 259config TURRIS_MOX_RWTM 260 tristate "Turris Mox rWTM secure firmware driver" 261 depends on ARCH_MVEBU || COMPILE_TEST 262 depends on HAS_DMA && OF 263 depends on MAILBOX 264 select HW_RANDOM 265 select ARMADA_37XX_RWTM_MBOX 266 help 267 This driver communicates with the firmware on the Cortex-M3 secure 268 processor of the Turris Mox router. Enable if you are building for 269 Turris Mox, and you will be able to read the device serial number and 270 other manufacturing data and also utilize the Entropy Bit Generator 271 for hardware random number generation. 272 273if TURRIS_MOX_RWTM 274 275config TURRIS_MOX_RWTM_KEYCTL 276 bool "Turris Mox rWTM ECDSA message signing" 277 default y 278 depends on KEYS 279 depends on ASYMMETRIC_KEY_TYPE 280 select CZNIC_PLATFORMS 281 select TURRIS_SIGNING_KEY 282 help 283 Say Y here to add support for ECDSA message signing with board private 284 key (each Turris Mox has an ECDSA private key generated in the secure 285 coprocessor when manufactured). This functionality is exposed via the 286 keyctl() syscall. 287 288endif # TURRIS_MOX_RWTM 289 290source "drivers/firmware/arm_ffa/Kconfig" 291source "drivers/firmware/broadcom/Kconfig" 292source "drivers/firmware/cirrus/Kconfig" 293source "drivers/firmware/google/Kconfig" 294source "drivers/firmware/efi/Kconfig" 295source "drivers/firmware/imx/Kconfig" 296source "drivers/firmware/meson/Kconfig" 297source "drivers/firmware/microchip/Kconfig" 298source "drivers/firmware/psci/Kconfig" 299source "drivers/firmware/qcom/Kconfig" 300source "drivers/firmware/samsung/Kconfig" 301source "drivers/firmware/smccc/Kconfig" 302source "drivers/firmware/tegra/Kconfig" 303source "drivers/firmware/xilinx/Kconfig" 304 305endmenu 306