18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# For a description of the syntax of this configuration file, 48c2ecf20Sopenharmony_ci# see Documentation/kbuild/kconfig-language.rst. 58c2ecf20Sopenharmony_ci# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cimenu "Firmware Drivers" 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciconfig ARM_SCMI_PROTOCOL 108c2ecf20Sopenharmony_ci tristate "ARM System Control and Management Interface (SCMI) Message Protocol" 118c2ecf20Sopenharmony_ci depends on ARM || ARM64 || COMPILE_TEST 128c2ecf20Sopenharmony_ci depends on MAILBOX || HAVE_ARM_SMCCC_DISCOVERY 138c2ecf20Sopenharmony_ci help 148c2ecf20Sopenharmony_ci ARM System Control and Management Interface (SCMI) protocol is a 158c2ecf20Sopenharmony_ci set of operating system-independent software interfaces that are 168c2ecf20Sopenharmony_ci used in system management. SCMI is extensible and currently provides 178c2ecf20Sopenharmony_ci interfaces for: Discovery and self-description of the interfaces 188c2ecf20Sopenharmony_ci it supports, Power domain management which is the ability to place 198c2ecf20Sopenharmony_ci a given device or domain into the various power-saving states that 208c2ecf20Sopenharmony_ci it supports, Performance management which is the ability to control 218c2ecf20Sopenharmony_ci the performance of a domain that is composed of compute engines 228c2ecf20Sopenharmony_ci such as application processors and other accelerators, Clock 238c2ecf20Sopenharmony_ci management which is the ability to set and inquire rates on platform 248c2ecf20Sopenharmony_ci managed clocks and Sensor management which is the ability to read 258c2ecf20Sopenharmony_ci sensor data, and be notified of sensor value. 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci This protocol library provides interface for all the client drivers 288c2ecf20Sopenharmony_ci making use of the features offered by the SCMI. 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciconfig ARM_SCMI_POWER_DOMAIN 318c2ecf20Sopenharmony_ci tristate "SCMI power domain driver" 328c2ecf20Sopenharmony_ci depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF) 338c2ecf20Sopenharmony_ci default y 348c2ecf20Sopenharmony_ci select PM_GENERIC_DOMAINS if PM 358c2ecf20Sopenharmony_ci help 368c2ecf20Sopenharmony_ci This enables support for the SCMI power domains which can be 378c2ecf20Sopenharmony_ci enabled or disabled via the SCP firmware 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci This driver can also be built as a module. If so, the module 408c2ecf20Sopenharmony_ci will be called scmi_pm_domain. Note this may needed early in boot 418c2ecf20Sopenharmony_ci before rootfs may be available. 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciconfig ARM_SCPI_PROTOCOL 448c2ecf20Sopenharmony_ci tristate "ARM System Control and Power Interface (SCPI) Message Protocol" 458c2ecf20Sopenharmony_ci depends on ARM || ARM64 || COMPILE_TEST 468c2ecf20Sopenharmony_ci depends on MAILBOX 478c2ecf20Sopenharmony_ci help 488c2ecf20Sopenharmony_ci System Control and Power Interface (SCPI) Message Protocol is 498c2ecf20Sopenharmony_ci defined for the purpose of communication between the Application 508c2ecf20Sopenharmony_ci Cores(AP) and the System Control Processor(SCP). The MHU peripheral 518c2ecf20Sopenharmony_ci provides a mechanism for inter-processor communication between SCP 528c2ecf20Sopenharmony_ci and AP. 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci SCP controls most of the power managament on the Application 558c2ecf20Sopenharmony_ci Processors. It offers control and management of: the core/cluster 568c2ecf20Sopenharmony_ci power states, various power domain DVFS including the core/cluster, 578c2ecf20Sopenharmony_ci certain system clocks configuration, thermal sensors and many 588c2ecf20Sopenharmony_ci others. 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci This protocol library provides interface for all the client drivers 618c2ecf20Sopenharmony_ci making use of the features offered by the SCP. 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ciconfig ARM_SCPI_POWER_DOMAIN 648c2ecf20Sopenharmony_ci tristate "SCPI power domain driver" 658c2ecf20Sopenharmony_ci depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF) 668c2ecf20Sopenharmony_ci default y 678c2ecf20Sopenharmony_ci select PM_GENERIC_DOMAINS if PM 688c2ecf20Sopenharmony_ci help 698c2ecf20Sopenharmony_ci This enables support for the SCPI power domains which can be 708c2ecf20Sopenharmony_ci enabled or disabled via the SCP firmware 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ciconfig ARM_SDE_INTERFACE 738c2ecf20Sopenharmony_ci bool "ARM Software Delegated Exception Interface (SDEI)" 748c2ecf20Sopenharmony_ci depends on ARM64 758c2ecf20Sopenharmony_ci depends on ACPI_APEI_GHES 768c2ecf20Sopenharmony_ci help 778c2ecf20Sopenharmony_ci The Software Delegated Exception Interface (SDEI) is an ARM 788c2ecf20Sopenharmony_ci standard for registering callbacks from the platform firmware 798c2ecf20Sopenharmony_ci into the OS. This is typically used to implement RAS notifications. 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ciconfig EDD 828c2ecf20Sopenharmony_ci tristate "BIOS Enhanced Disk Drive calls determine boot disk" 838c2ecf20Sopenharmony_ci depends on X86 848c2ecf20Sopenharmony_ci help 858c2ecf20Sopenharmony_ci Say Y or M here if you want to enable BIOS Enhanced Disk Drive 868c2ecf20Sopenharmony_ci Services real mode BIOS calls to determine which disk 878c2ecf20Sopenharmony_ci BIOS tries boot from. This information is then exported via sysfs. 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci This option is experimental and is known to fail to boot on some 908c2ecf20Sopenharmony_ci obscure configurations. Most disk controller BIOS vendors do 918c2ecf20Sopenharmony_ci not yet implement this feature. 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ciconfig EDD_OFF 948c2ecf20Sopenharmony_ci bool "Sets default behavior for EDD detection to off" 958c2ecf20Sopenharmony_ci depends on EDD 968c2ecf20Sopenharmony_ci default n 978c2ecf20Sopenharmony_ci help 988c2ecf20Sopenharmony_ci Say Y if you want EDD disabled by default, even though it is compiled into the 998c2ecf20Sopenharmony_ci kernel. Say N if you want EDD enabled by default. EDD can be dynamically set 1008c2ecf20Sopenharmony_ci using the kernel parameter 'edd={on|skipmbr|off}'. 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ciconfig FIRMWARE_MEMMAP 1038c2ecf20Sopenharmony_ci bool "Add firmware-provided memory map to sysfs" if EXPERT 1048c2ecf20Sopenharmony_ci default X86 1058c2ecf20Sopenharmony_ci help 1068c2ecf20Sopenharmony_ci Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. 1078c2ecf20Sopenharmony_ci That memory map is used for example by kexec to set up parameter area 1088c2ecf20Sopenharmony_ci for the next kernel, but can also be used for debugging purposes. 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci See also Documentation/ABI/testing/sysfs-firmware-memmap. 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ciconfig EFI_PCDP 1138c2ecf20Sopenharmony_ci bool "Console device selection via EFI PCDP or HCDP table" 1148c2ecf20Sopenharmony_ci depends on ACPI && EFI && IA64 1158c2ecf20Sopenharmony_ci default y if IA64 1168c2ecf20Sopenharmony_ci help 1178c2ecf20Sopenharmony_ci If your firmware supplies the PCDP table, and you want to 1188c2ecf20Sopenharmony_ci automatically use the primary console device it describes 1198c2ecf20Sopenharmony_ci as the Linux console, say Y here. 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci If your firmware supplies the HCDP table, and you want to 1228c2ecf20Sopenharmony_ci use the first serial port it describes as the Linux console, 1238c2ecf20Sopenharmony_ci say Y here. If your EFI ConOut path contains only a UART 1248c2ecf20Sopenharmony_ci device, it will become the console automatically. Otherwise, 1258c2ecf20Sopenharmony_ci you must specify the "console=hcdp" kernel boot argument. 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci Neither the PCDP nor the HCDP affects naming of serial devices, 1288c2ecf20Sopenharmony_ci so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending 1298c2ecf20Sopenharmony_ci on how the driver discovers devices. 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci You must also enable the appropriate drivers (serial, VGA, etc.) 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci See DIG64_HCDPv20_042804.pdf available from 1348c2ecf20Sopenharmony_ci <http://www.dig64.org/specifications/> 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ciconfig DMIID 1378c2ecf20Sopenharmony_ci bool "Export DMI identification via sysfs to userspace" 1388c2ecf20Sopenharmony_ci depends on DMI 1398c2ecf20Sopenharmony_ci default y 1408c2ecf20Sopenharmony_ci help 1418c2ecf20Sopenharmony_ci Say Y here if you want to query SMBIOS/DMI system identification 1428c2ecf20Sopenharmony_ci information from userspace through /sys/class/dmi/id/ or if you want 1438c2ecf20Sopenharmony_ci DMI-based module auto-loading. 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ciconfig DMI_SYSFS 1468c2ecf20Sopenharmony_ci tristate "DMI table support in sysfs" 1478c2ecf20Sopenharmony_ci depends on SYSFS && DMI 1488c2ecf20Sopenharmony_ci default n 1498c2ecf20Sopenharmony_ci help 1508c2ecf20Sopenharmony_ci Say Y or M here to enable the exporting of the raw DMI table 1518c2ecf20Sopenharmony_ci data via sysfs. This is useful for consuming the data without 1528c2ecf20Sopenharmony_ci requiring any access to /dev/mem at all. Tables are found 1538c2ecf20Sopenharmony_ci under /sys/firmware/dmi when this option is enabled and 1548c2ecf20Sopenharmony_ci loaded. 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ciconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK 1578c2ecf20Sopenharmony_ci bool 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ciconfig ISCSI_IBFT_FIND 1608c2ecf20Sopenharmony_ci bool "iSCSI Boot Firmware Table Attributes" 1618c2ecf20Sopenharmony_ci depends on X86 && ISCSI_IBFT 1628c2ecf20Sopenharmony_ci default n 1638c2ecf20Sopenharmony_ci help 1648c2ecf20Sopenharmony_ci This option enables the kernel to find the region of memory 1658c2ecf20Sopenharmony_ci in which the ISCSI Boot Firmware Table (iBFT) resides. This 1668c2ecf20Sopenharmony_ci is necessary for iSCSI Boot Firmware Table Attributes module to work 1678c2ecf20Sopenharmony_ci properly. 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ciconfig ISCSI_IBFT 1708c2ecf20Sopenharmony_ci tristate "iSCSI Boot Firmware Table Attributes module" 1718c2ecf20Sopenharmony_ci select ISCSI_BOOT_SYSFS 1728c2ecf20Sopenharmony_ci select ISCSI_IBFT_FIND if X86 1738c2ecf20Sopenharmony_ci depends on ACPI && SCSI && SCSI_LOWLEVEL 1748c2ecf20Sopenharmony_ci default n 1758c2ecf20Sopenharmony_ci help 1768c2ecf20Sopenharmony_ci This option enables support for detection and exposing of iSCSI 1778c2ecf20Sopenharmony_ci Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to 1788c2ecf20Sopenharmony_ci detect iSCSI boot parameters dynamically during system boot, say Y. 1798c2ecf20Sopenharmony_ci Otherwise, say N. 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ciconfig RASPBERRYPI_FIRMWARE 1828c2ecf20Sopenharmony_ci tristate "Raspberry Pi Firmware Driver" 1838c2ecf20Sopenharmony_ci depends on BCM2835_MBOX 1848c2ecf20Sopenharmony_ci help 1858c2ecf20Sopenharmony_ci This option enables support for communicating with the firmware on the 1868c2ecf20Sopenharmony_ci Raspberry Pi. 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ciconfig FW_CFG_SYSFS 1898c2ecf20Sopenharmony_ci tristate "QEMU fw_cfg device support in sysfs" 1908c2ecf20Sopenharmony_ci depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86) 1918c2ecf20Sopenharmony_ci depends on HAS_IOPORT_MAP 1928c2ecf20Sopenharmony_ci default n 1938c2ecf20Sopenharmony_ci help 1948c2ecf20Sopenharmony_ci Say Y or M here to enable the exporting of the QEMU firmware 1958c2ecf20Sopenharmony_ci configuration (fw_cfg) file entries via sysfs. Entries are 1968c2ecf20Sopenharmony_ci found under /sys/firmware/fw_cfg when this option is enabled 1978c2ecf20Sopenharmony_ci and loaded. 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciconfig FW_CFG_SYSFS_CMDLINE 2008c2ecf20Sopenharmony_ci bool "QEMU fw_cfg device parameter parsing" 2018c2ecf20Sopenharmony_ci depends on FW_CFG_SYSFS 2028c2ecf20Sopenharmony_ci help 2038c2ecf20Sopenharmony_ci Allow the qemu_fw_cfg device to be initialized via the kernel 2048c2ecf20Sopenharmony_ci command line or using a module parameter. 2058c2ecf20Sopenharmony_ci WARNING: Using incorrect parameters (base address in particular) 2068c2ecf20Sopenharmony_ci may crash your system. 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ciconfig INTEL_STRATIX10_SERVICE 2098c2ecf20Sopenharmony_ci tristate "Intel Stratix10 Service Layer" 2108c2ecf20Sopenharmony_ci depends on (ARCH_STRATIX10 || ARCH_AGILEX) && HAVE_ARM_SMCCC 2118c2ecf20Sopenharmony_ci default n 2128c2ecf20Sopenharmony_ci help 2138c2ecf20Sopenharmony_ci Intel Stratix10 service layer runs at privileged exception level, 2148c2ecf20Sopenharmony_ci interfaces with the service providers (FPGA manager is one of them) 2158c2ecf20Sopenharmony_ci and manages secure monitor call to communicate with secure monitor 2168c2ecf20Sopenharmony_ci software at secure monitor exception level. 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci Say Y here if you want Stratix10 service layer support. 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ciconfig INTEL_STRATIX10_RSU 2218c2ecf20Sopenharmony_ci tristate "Intel Stratix10 Remote System Update" 2228c2ecf20Sopenharmony_ci depends on INTEL_STRATIX10_SERVICE 2238c2ecf20Sopenharmony_ci help 2248c2ecf20Sopenharmony_ci The Intel Remote System Update (RSU) driver exposes interfaces 2258c2ecf20Sopenharmony_ci access through the Intel Service Layer to user space via sysfs 2268c2ecf20Sopenharmony_ci device attribute nodes. The RSU interfaces report/control some of 2278c2ecf20Sopenharmony_ci the optional RSU features of the Stratix 10 SoC FPGA. 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci The RSU provides a way for customers to update the boot 2308c2ecf20Sopenharmony_ci configuration of a Stratix 10 SoC device with significantly reduced 2318c2ecf20Sopenharmony_ci risk of corrupting the bitstream storage and bricking the system. 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci Enable RSU support if you are using an Intel SoC FPGA with the RSU 2348c2ecf20Sopenharmony_ci feature enabled and you want Linux user space control. 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci Say Y here if you want Intel RSU support. 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ciconfig QCOM_SCM 2398c2ecf20Sopenharmony_ci bool 2408c2ecf20Sopenharmony_ci depends on ARM || ARM64 2418c2ecf20Sopenharmony_ci depends on HAVE_ARM_SMCCC 2428c2ecf20Sopenharmony_ci select RESET_CONTROLLER 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ciconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT 2458c2ecf20Sopenharmony_ci bool "Qualcomm download mode enabled by default" 2468c2ecf20Sopenharmony_ci depends on QCOM_SCM 2478c2ecf20Sopenharmony_ci help 2488c2ecf20Sopenharmony_ci A device with "download mode" enabled will upon an unexpected 2498c2ecf20Sopenharmony_ci warm-restart enter a special debug mode that allows the user to 2508c2ecf20Sopenharmony_ci "download" memory content over USB for offline postmortem analysis. 2518c2ecf20Sopenharmony_ci The feature can be enabled/disabled on the kernel command line. 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci Say Y here to enable "download mode" by default. 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ciconfig TI_SCI_PROTOCOL 2568c2ecf20Sopenharmony_ci tristate "TI System Control Interface (TISCI) Message Protocol" 2578c2ecf20Sopenharmony_ci depends on TI_MESSAGE_MANAGER 2588c2ecf20Sopenharmony_ci help 2598c2ecf20Sopenharmony_ci TI System Control Interface (TISCI) Message Protocol is used to manage 2608c2ecf20Sopenharmony_ci compute systems such as ARM, DSP etc with the system controller in 2618c2ecf20Sopenharmony_ci complex System on Chip(SoC) such as those found on certain keystone 2628c2ecf20Sopenharmony_ci generation SoC from TI. 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ci System controller provides various facilities including power 2658c2ecf20Sopenharmony_ci management function support. 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci This protocol library is used by client drivers to use the features 2688c2ecf20Sopenharmony_ci provided by the system controller. 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ciconfig TRUSTED_FOUNDATIONS 2718c2ecf20Sopenharmony_ci bool "Trusted Foundations secure monitor support" 2728c2ecf20Sopenharmony_ci depends on ARM && CPU_V7 2738c2ecf20Sopenharmony_ci help 2748c2ecf20Sopenharmony_ci Some devices (including most early Tegra-based consumer devices on 2758c2ecf20Sopenharmony_ci the market) are booted with the Trusted Foundations secure monitor 2768c2ecf20Sopenharmony_ci active, requiring some core operations to be performed by the secure 2778c2ecf20Sopenharmony_ci monitor instead of the kernel. 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci This option allows the kernel to invoke the secure monitor whenever 2808c2ecf20Sopenharmony_ci required on devices using Trusted Foundations. See the functions and 2818c2ecf20Sopenharmony_ci comments in linux/firmware/trusted_foundations.h or the device tree 2828c2ecf20Sopenharmony_ci bindings for "tlm,trusted-foundations" for details on how to use it. 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci Choose N if you don't know what this is about. 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ciconfig TURRIS_MOX_RWTM 2878c2ecf20Sopenharmony_ci tristate "Turris Mox rWTM secure firmware driver" 2888c2ecf20Sopenharmony_ci depends on ARCH_MVEBU || COMPILE_TEST 2898c2ecf20Sopenharmony_ci depends on HAS_DMA && OF 2908c2ecf20Sopenharmony_ci depends on MAILBOX 2918c2ecf20Sopenharmony_ci select HW_RANDOM 2928c2ecf20Sopenharmony_ci select ARMADA_37XX_RWTM_MBOX 2938c2ecf20Sopenharmony_ci help 2948c2ecf20Sopenharmony_ci This driver communicates with the firmware on the Cortex-M3 secure 2958c2ecf20Sopenharmony_ci processor of the Turris Mox router. Enable if you are building for 2968c2ecf20Sopenharmony_ci Turris Mox, and you will be able to read the device serial number and 2978c2ecf20Sopenharmony_ci other manufacturing data and also utilize the Entropy Bit Generator 2988c2ecf20Sopenharmony_ci for hardware random number generation. 2998c2ecf20Sopenharmony_ci 3008c2ecf20Sopenharmony_cisource "drivers/firmware/broadcom/Kconfig" 3018c2ecf20Sopenharmony_cisource "drivers/firmware/google/Kconfig" 3028c2ecf20Sopenharmony_cisource "drivers/firmware/efi/Kconfig" 3038c2ecf20Sopenharmony_cisource "drivers/firmware/imx/Kconfig" 3048c2ecf20Sopenharmony_cisource "drivers/firmware/meson/Kconfig" 3058c2ecf20Sopenharmony_cisource "drivers/firmware/psci/Kconfig" 3068c2ecf20Sopenharmony_cisource "drivers/firmware/smccc/Kconfig" 3078c2ecf20Sopenharmony_cisource "drivers/firmware/tegra/Kconfig" 3088c2ecf20Sopenharmony_cisource "drivers/firmware/xilinx/Kconfig" 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ciendmenu 311