1# 2# For a description of the syntax of this configuration file, 3# see Documentation/kbuild/kconfig-language.txt. 4# 5 6menu "Firmware Drivers" 7 8config ARM_SCMI_PROTOCOL 9 bool "ARM System Control and Management Interface (SCMI) Message Protocol" 10 depends on ARM || ARM64 || COMPILE_TEST 11 depends on MAILBOX 12 help 13 ARM System Control and Management Interface (SCMI) protocol is a 14 set of operating system-independent software interfaces that are 15 used in system management. SCMI is extensible and currently provides 16 interfaces for: Discovery and self-description of the interfaces 17 it supports, Power domain management which is the ability to place 18 a given device or domain into the various power-saving states that 19 it supports, Performance management which is the ability to control 20 the performance of a domain that is composed of compute engines 21 such as application processors and other accelerators, Clock 22 management which is the ability to set and inquire rates on platform 23 managed clocks and Sensor management which is the ability to read 24 sensor data, and be notified of sensor value. 25 26 This protocol library provides interface for all the client drivers 27 making use of the features offered by the SCMI. 28 29config ARM_SCMI_POWER_DOMAIN 30 tristate "SCMI power domain driver" 31 depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) 32 default y 33 select PM_GENERIC_DOMAINS if PM 34 help 35 This enables support for the SCMI power domains which can be 36 enabled or disabled via the SCP firmware 37 38 This driver can also be built as a module. If so, the module 39 will be called scmi_pm_domain. Note this may needed early in boot 40 before rootfs may be available. 41 42config ARM_SCPI_PROTOCOL 43 tristate "ARM System Control and Power Interface (SCPI) Message Protocol" 44 depends on ARM || ARM64 || COMPILE_TEST 45 depends on MAILBOX 46 help 47 System Control and Power Interface (SCPI) Message Protocol is 48 defined for the purpose of communication between the Application 49 Cores(AP) and the System Control Processor(SCP). The MHU peripheral 50 provides a mechanism for inter-processor communication between SCP 51 and AP. 52 53 SCP controls most of the power managament on the Application 54 Processors. It offers control and management of: the core/cluster 55 power states, various power domain DVFS including the core/cluster, 56 certain system clocks configuration, thermal sensors and many 57 others. 58 59 This protocol library provides interface for all the client drivers 60 making use of the features offered by the SCP. 61 62config ARM_SCPI_POWER_DOMAIN 63 tristate "SCPI power domain driver" 64 depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF) 65 default y 66 select PM_GENERIC_DOMAINS if PM 67 help 68 This enables support for the SCPI power domains which can be 69 enabled or disabled via the SCP firmware 70 71config ARM_SDE_INTERFACE 72 bool "ARM Software Delegated Exception Interface (SDEI)" 73 depends on ARM64 74 help 75 The Software Delegated Exception Interface (SDEI) is an ARM 76 standard for registering callbacks from the platform firmware 77 into the OS. This is typically used to implement RAS notifications. 78 79config EDD 80 tristate "BIOS Enhanced Disk Drive calls determine boot disk" 81 depends on X86 82 help 83 Say Y or M here if you want to enable BIOS Enhanced Disk Drive 84 Services real mode BIOS calls to determine which disk 85 BIOS tries boot from. This information is then exported via sysfs. 86 87 This option is experimental and is known to fail to boot on some 88 obscure configurations. Most disk controller BIOS vendors do 89 not yet implement this feature. 90 91config EDD_OFF 92 bool "Sets default behavior for EDD detection to off" 93 depends on EDD 94 default n 95 help 96 Say Y if you want EDD disabled by default, even though it is compiled into the 97 kernel. Say N if you want EDD enabled by default. EDD can be dynamically set 98 using the kernel parameter 'edd={on|skipmbr|off}'. 99 100config FIRMWARE_MEMMAP 101 bool "Add firmware-provided memory map to sysfs" if EXPERT 102 default X86 103 help 104 Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. 105 That memory map is used for example by kexec to set up parameter area 106 for the next kernel, but can also be used for debugging purposes. 107 108 See also Documentation/ABI/testing/sysfs-firmware-memmap. 109 110config EFI_PCDP 111 bool "Console device selection via EFI PCDP or HCDP table" 112 depends on ACPI && EFI && IA64 113 default y if IA64 114 help 115 If your firmware supplies the PCDP table, and you want to 116 automatically use the primary console device it describes 117 as the Linux console, say Y here. 118 119 If your firmware supplies the HCDP table, and you want to 120 use the first serial port it describes as the Linux console, 121 say Y here. If your EFI ConOut path contains only a UART 122 device, it will become the console automatically. Otherwise, 123 you must specify the "console=hcdp" kernel boot argument. 124 125 Neither the PCDP nor the HCDP affects naming of serial devices, 126 so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending 127 on how the driver discovers devices. 128 129 You must also enable the appropriate drivers (serial, VGA, etc.) 130 131 See DIG64_HCDPv20_042804.pdf available from 132 <http://www.dig64.org/specifications/> 133 134config DMIID 135 bool "Export DMI identification via sysfs to userspace" 136 depends on DMI 137 default y 138 help 139 Say Y here if you want to query SMBIOS/DMI system identification 140 information from userspace through /sys/class/dmi/id/ or if you want 141 DMI-based module auto-loading. 142 143config DMI_SYSFS 144 tristate "DMI table support in sysfs" 145 depends on SYSFS && DMI 146 default n 147 help 148 Say Y or M here to enable the exporting of the raw DMI table 149 data via sysfs. This is useful for consuming the data without 150 requiring any access to /dev/mem at all. Tables are found 151 under /sys/firmware/dmi when this option is enabled and 152 loaded. 153 154config DMI_SCAN_MACHINE_NON_EFI_FALLBACK 155 bool 156 157config ISCSI_IBFT_FIND 158 bool "iSCSI Boot Firmware Table Attributes" 159 depends on X86 && ACPI 160 default n 161 help 162 This option enables the kernel to find the region of memory 163 in which the ISCSI Boot Firmware Table (iBFT) resides. This 164 is necessary for iSCSI Boot Firmware Table Attributes module to work 165 properly. 166 167config ISCSI_IBFT 168 tristate "iSCSI Boot Firmware Table Attributes module" 169 select ISCSI_BOOT_SYSFS 170 depends on ISCSI_IBFT_FIND && SCSI && SCSI_LOWLEVEL 171 default n 172 help 173 This option enables support for detection and exposing of iSCSI 174 Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to 175 detect iSCSI boot parameters dynamically during system boot, say Y. 176 Otherwise, say N. 177 178config RASPBERRYPI_FIRMWARE 179 tristate "Raspberry Pi Firmware Driver" 180 depends on BCM2835_MBOX 181 help 182 This option enables support for communicating with the firmware on the 183 Raspberry Pi. 184 185config FW_CFG_SYSFS 186 tristate "QEMU fw_cfg device support in sysfs" 187 depends on SYSFS && (ARM || ARM64 || PPC_PMAC || SPARC || X86) 188 depends on HAS_IOPORT_MAP 189 default n 190 help 191 Say Y or M here to enable the exporting of the QEMU firmware 192 configuration (fw_cfg) file entries via sysfs. Entries are 193 found under /sys/firmware/fw_cfg when this option is enabled 194 and loaded. 195 196config FW_CFG_SYSFS_CMDLINE 197 bool "QEMU fw_cfg device parameter parsing" 198 depends on FW_CFG_SYSFS 199 help 200 Allow the qemu_fw_cfg device to be initialized via the kernel 201 command line or using a module parameter. 202 WARNING: Using incorrect parameters (base address in particular) 203 may crash your system. 204 205config INTEL_STRATIX10_SERVICE 206 tristate "Intel Stratix10 Service Layer" 207 depends on ARCH_STRATIX10 && HAVE_ARM_SMCCC 208 default n 209 help 210 Intel Stratix10 service layer runs at privileged exception level, 211 interfaces with the service providers (FPGA manager is one of them) 212 and manages secure monitor call to communicate with secure monitor 213 software at secure monitor exception level. 214 215 Say Y here if you want Stratix10 service layer support. 216 217config QCOM_SCM 218 bool 219 depends on ARM || ARM64 220 select RESET_CONTROLLER 221 222config QCOM_SCM_32 223 def_bool y 224 depends on QCOM_SCM && ARM 225 226config QCOM_SCM_64 227 def_bool y 228 depends on QCOM_SCM && ARM64 229 230config QCOM_SCM_DOWNLOAD_MODE_DEFAULT 231 bool "Qualcomm download mode enabled by default" 232 depends on QCOM_SCM 233 help 234 A device with "download mode" enabled will upon an unexpected 235 warm-restart enter a special debug mode that allows the user to 236 "download" memory content over USB for offline postmortem analysis. 237 The feature can be enabled/disabled on the kernel command line. 238 239 Say Y here to enable "download mode" by default. 240 241config TI_SCI_PROTOCOL 242 tristate "TI System Control Interface (TISCI) Message Protocol" 243 depends on TI_MESSAGE_MANAGER 244 help 245 TI System Control Interface (TISCI) Message Protocol is used to manage 246 compute systems such as ARM, DSP etc with the system controller in 247 complex System on Chip(SoC) such as those found on certain keystone 248 generation SoC from TI. 249 250 System controller provides various facilities including power 251 management function support. 252 253 This protocol library is used by client drivers to use the features 254 provided by the system controller. 255 256config TRUSTED_FOUNDATIONS 257 bool "Trusted Foundations secure monitor support" 258 depends on ARM 259 help 260 Some devices (including most early Tegra-based consumer devices on 261 the market) are booted with the Trusted Foundations secure monitor 262 active, requiring some core operations to be performed by the secure 263 monitor instead of the kernel. 264 265 This option allows the kernel to invoke the secure monitor whenever 266 required on devices using Trusted Foundations. See the functions and 267 comments in linux/firmware/trusted_foundations.h or the device tree 268 bindings for "tlm,trusted-foundations" for details on how to use it. 269 270 Choose N if you don't know what this is about. 271 272config HAVE_ARM_SMCCC 273 bool 274 275source "drivers/firmware/psci/Kconfig" 276source "drivers/firmware/broadcom/Kconfig" 277source "drivers/firmware/google/Kconfig" 278source "drivers/firmware/efi/Kconfig" 279source "drivers/firmware/imx/Kconfig" 280source "drivers/firmware/meson/Kconfig" 281source "drivers/firmware/tegra/Kconfig" 282source "drivers/firmware/xilinx/Kconfig" 283 284endmenu 285