162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# For a description of the syntax of this configuration file, 462306a36Sopenharmony_ci# see Documentation/kbuild/kconfig-language.rst. 562306a36Sopenharmony_ci# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cimenu "Firmware Drivers" 862306a36Sopenharmony_ci 962306a36Sopenharmony_cisource "drivers/firmware/arm_scmi/Kconfig" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciconfig ARM_SCPI_PROTOCOL 1262306a36Sopenharmony_ci tristate "ARM System Control and Power Interface (SCPI) Message Protocol" 1362306a36Sopenharmony_ci depends on ARM || ARM64 || COMPILE_TEST 1462306a36Sopenharmony_ci depends on MAILBOX 1562306a36Sopenharmony_ci help 1662306a36Sopenharmony_ci System Control and Power Interface (SCPI) Message Protocol is 1762306a36Sopenharmony_ci defined for the purpose of communication between the Application 1862306a36Sopenharmony_ci Cores(AP) and the System Control Processor(SCP). The MHU peripheral 1962306a36Sopenharmony_ci provides a mechanism for inter-processor communication between SCP 2062306a36Sopenharmony_ci and AP. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci SCP controls most of the power management on the Application 2362306a36Sopenharmony_ci Processors. It offers control and management of: the core/cluster 2462306a36Sopenharmony_ci power states, various power domain DVFS including the core/cluster, 2562306a36Sopenharmony_ci certain system clocks configuration, thermal sensors and many 2662306a36Sopenharmony_ci others. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci This protocol library provides interface for all the client drivers 2962306a36Sopenharmony_ci making use of the features offered by the SCP. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciconfig ARM_SCPI_POWER_DOMAIN 3262306a36Sopenharmony_ci tristate "SCPI power domain driver" 3362306a36Sopenharmony_ci depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF) 3462306a36Sopenharmony_ci default y 3562306a36Sopenharmony_ci select PM_GENERIC_DOMAINS if PM 3662306a36Sopenharmony_ci help 3762306a36Sopenharmony_ci This enables support for the SCPI power domains which can be 3862306a36Sopenharmony_ci enabled or disabled via the SCP firmware 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciconfig ARM_SDE_INTERFACE 4162306a36Sopenharmony_ci bool "ARM Software Delegated Exception Interface (SDEI)" 4262306a36Sopenharmony_ci depends on ARM64 4362306a36Sopenharmony_ci depends on ACPI_APEI_GHES 4462306a36Sopenharmony_ci help 4562306a36Sopenharmony_ci The Software Delegated Exception Interface (SDEI) is an ARM 4662306a36Sopenharmony_ci standard for registering callbacks from the platform firmware 4762306a36Sopenharmony_ci into the OS. This is typically used to implement RAS notifications. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciconfig EDD 5062306a36Sopenharmony_ci tristate "BIOS Enhanced Disk Drive calls determine boot disk" 5162306a36Sopenharmony_ci depends on X86 5262306a36Sopenharmony_ci help 5362306a36Sopenharmony_ci Say Y or M here if you want to enable BIOS Enhanced Disk Drive 5462306a36Sopenharmony_ci Services real mode BIOS calls to determine which disk 5562306a36Sopenharmony_ci BIOS tries boot from. This information is then exported via sysfs. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci This option is experimental and is known to fail to boot on some 5862306a36Sopenharmony_ci obscure configurations. Most disk controller BIOS vendors do 5962306a36Sopenharmony_ci not yet implement this feature. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciconfig EDD_OFF 6262306a36Sopenharmony_ci bool "Sets default behavior for EDD detection to off" 6362306a36Sopenharmony_ci depends on EDD 6462306a36Sopenharmony_ci default n 6562306a36Sopenharmony_ci help 6662306a36Sopenharmony_ci Say Y if you want EDD disabled by default, even though it is compiled into the 6762306a36Sopenharmony_ci kernel. Say N if you want EDD enabled by default. EDD can be dynamically set 6862306a36Sopenharmony_ci using the kernel parameter 'edd={on|skipmbr|off}'. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciconfig FIRMWARE_MEMMAP 7162306a36Sopenharmony_ci bool "Add firmware-provided memory map to sysfs" if EXPERT 7262306a36Sopenharmony_ci default X86 7362306a36Sopenharmony_ci help 7462306a36Sopenharmony_ci Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap. 7562306a36Sopenharmony_ci That memory map is used for example by kexec to set up parameter area 7662306a36Sopenharmony_ci for the next kernel, but can also be used for debugging purposes. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci See also Documentation/ABI/testing/sysfs-firmware-memmap. 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig EFI_PCDP 8162306a36Sopenharmony_ci bool "Console device selection via EFI PCDP or HCDP table" 8262306a36Sopenharmony_ci depends on ACPI && EFI && IA64 8362306a36Sopenharmony_ci default y if IA64 8462306a36Sopenharmony_ci help 8562306a36Sopenharmony_ci If your firmware supplies the PCDP table, and you want to 8662306a36Sopenharmony_ci automatically use the primary console device it describes 8762306a36Sopenharmony_ci as the Linux console, say Y here. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci If your firmware supplies the HCDP table, and you want to 9062306a36Sopenharmony_ci use the first serial port it describes as the Linux console, 9162306a36Sopenharmony_ci say Y here. If your EFI ConOut path contains only a UART 9262306a36Sopenharmony_ci device, it will become the console automatically. Otherwise, 9362306a36Sopenharmony_ci you must specify the "console=hcdp" kernel boot argument. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci Neither the PCDP nor the HCDP affects naming of serial devices, 9662306a36Sopenharmony_ci so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending 9762306a36Sopenharmony_ci on how the driver discovers devices. 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci You must also enable the appropriate drivers (serial, VGA, etc.) 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci See DIG64_HCDPv20_042804.pdf available from 10262306a36Sopenharmony_ci <http://www.dig64.org/specifications/> 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciconfig DMIID 10562306a36Sopenharmony_ci bool "Export DMI identification via sysfs to userspace" 10662306a36Sopenharmony_ci depends on DMI 10762306a36Sopenharmony_ci default y 10862306a36Sopenharmony_ci help 10962306a36Sopenharmony_ci Say Y here if you want to query SMBIOS/DMI system identification 11062306a36Sopenharmony_ci information from userspace through /sys/class/dmi/id/ or if you want 11162306a36Sopenharmony_ci DMI-based module auto-loading. 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ciconfig DMI_SYSFS 11462306a36Sopenharmony_ci tristate "DMI table support in sysfs" 11562306a36Sopenharmony_ci depends on SYSFS && DMI 11662306a36Sopenharmony_ci default n 11762306a36Sopenharmony_ci help 11862306a36Sopenharmony_ci Say Y or M here to enable the exporting of the raw DMI table 11962306a36Sopenharmony_ci data via sysfs. This is useful for consuming the data without 12062306a36Sopenharmony_ci requiring any access to /dev/mem at all. Tables are found 12162306a36Sopenharmony_ci under /sys/firmware/dmi when this option is enabled and 12262306a36Sopenharmony_ci loaded. 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK 12562306a36Sopenharmony_ci bool 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ciconfig ISCSI_IBFT_FIND 12862306a36Sopenharmony_ci bool "iSCSI Boot Firmware Table Attributes" 12962306a36Sopenharmony_ci depends on X86 && ISCSI_IBFT 13062306a36Sopenharmony_ci default n 13162306a36Sopenharmony_ci help 13262306a36Sopenharmony_ci This option enables the kernel to find the region of memory 13362306a36Sopenharmony_ci in which the ISCSI Boot Firmware Table (iBFT) resides. This 13462306a36Sopenharmony_ci is necessary for iSCSI Boot Firmware Table Attributes module to work 13562306a36Sopenharmony_ci properly. 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ciconfig ISCSI_IBFT 13862306a36Sopenharmony_ci tristate "iSCSI Boot Firmware Table Attributes module" 13962306a36Sopenharmony_ci select ISCSI_BOOT_SYSFS 14062306a36Sopenharmony_ci select ISCSI_IBFT_FIND if X86 14162306a36Sopenharmony_ci depends on ACPI && SCSI && SCSI_LOWLEVEL 14262306a36Sopenharmony_ci default n 14362306a36Sopenharmony_ci help 14462306a36Sopenharmony_ci This option enables support for detection and exposing of iSCSI 14562306a36Sopenharmony_ci Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to 14662306a36Sopenharmony_ci detect iSCSI boot parameters dynamically during system boot, say Y. 14762306a36Sopenharmony_ci Otherwise, say N. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciconfig RASPBERRYPI_FIRMWARE 15062306a36Sopenharmony_ci tristate "Raspberry Pi Firmware Driver" 15162306a36Sopenharmony_ci depends on BCM2835_MBOX 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci This option enables support for communicating with the firmware on the 15462306a36Sopenharmony_ci Raspberry Pi. 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ciconfig FW_CFG_SYSFS 15762306a36Sopenharmony_ci tristate "QEMU fw_cfg device support in sysfs" 15862306a36Sopenharmony_ci depends on SYSFS && (ARM || ARM64 || PARISC || PPC_PMAC || SPARC || X86) 15962306a36Sopenharmony_ci depends on HAS_IOPORT_MAP 16062306a36Sopenharmony_ci default n 16162306a36Sopenharmony_ci help 16262306a36Sopenharmony_ci Say Y or M here to enable the exporting of the QEMU firmware 16362306a36Sopenharmony_ci configuration (fw_cfg) file entries via sysfs. Entries are 16462306a36Sopenharmony_ci found under /sys/firmware/fw_cfg when this option is enabled 16562306a36Sopenharmony_ci and loaded. 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ciconfig FW_CFG_SYSFS_CMDLINE 16862306a36Sopenharmony_ci bool "QEMU fw_cfg device parameter parsing" 16962306a36Sopenharmony_ci depends on FW_CFG_SYSFS 17062306a36Sopenharmony_ci help 17162306a36Sopenharmony_ci Allow the qemu_fw_cfg device to be initialized via the kernel 17262306a36Sopenharmony_ci command line or using a module parameter. 17362306a36Sopenharmony_ci WARNING: Using incorrect parameters (base address in particular) 17462306a36Sopenharmony_ci may crash your system. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ciconfig INTEL_STRATIX10_SERVICE 17762306a36Sopenharmony_ci tristate "Intel Stratix10 Service Layer" 17862306a36Sopenharmony_ci depends on ARCH_INTEL_SOCFPGA && ARM64 && HAVE_ARM_SMCCC 17962306a36Sopenharmony_ci default n 18062306a36Sopenharmony_ci help 18162306a36Sopenharmony_ci Intel Stratix10 service layer runs at privileged exception level, 18262306a36Sopenharmony_ci interfaces with the service providers (FPGA manager is one of them) 18362306a36Sopenharmony_ci and manages secure monitor call to communicate with secure monitor 18462306a36Sopenharmony_ci software at secure monitor exception level. 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci Say Y here if you want Stratix10 service layer support. 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ciconfig INTEL_STRATIX10_RSU 18962306a36Sopenharmony_ci tristate "Intel Stratix10 Remote System Update" 19062306a36Sopenharmony_ci depends on INTEL_STRATIX10_SERVICE 19162306a36Sopenharmony_ci help 19262306a36Sopenharmony_ci The Intel Remote System Update (RSU) driver exposes interfaces 19362306a36Sopenharmony_ci access through the Intel Service Layer to user space via sysfs 19462306a36Sopenharmony_ci device attribute nodes. The RSU interfaces report/control some of 19562306a36Sopenharmony_ci the optional RSU features of the Stratix 10 SoC FPGA. 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci The RSU provides a way for customers to update the boot 19862306a36Sopenharmony_ci configuration of a Stratix 10 SoC device with significantly reduced 19962306a36Sopenharmony_ci risk of corrupting the bitstream storage and bricking the system. 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci Enable RSU support if you are using an Intel SoC FPGA with the RSU 20262306a36Sopenharmony_ci feature enabled and you want Linux user space control. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci Say Y here if you want Intel RSU support. 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ciconfig MTK_ADSP_IPC 20762306a36Sopenharmony_ci tristate "MTK ADSP IPC Protocol driver" 20862306a36Sopenharmony_ci depends on MTK_ADSP_MBOX 20962306a36Sopenharmony_ci help 21062306a36Sopenharmony_ci Say yes here to add support for the MediaTek ADSP IPC 21162306a36Sopenharmony_ci between host AP (Linux) and the firmware running on ADSP. 21262306a36Sopenharmony_ci ADSP exists on some mtk processors. 21362306a36Sopenharmony_ci Client might use shared memory to exchange information with ADSP. 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ciconfig QCOM_SCM 21662306a36Sopenharmony_ci tristate 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT 21962306a36Sopenharmony_ci bool "Qualcomm download mode enabled by default" 22062306a36Sopenharmony_ci depends on QCOM_SCM 22162306a36Sopenharmony_ci help 22262306a36Sopenharmony_ci A device with "download mode" enabled will upon an unexpected 22362306a36Sopenharmony_ci warm-restart enter a special debug mode that allows the user to 22462306a36Sopenharmony_ci "download" memory content over USB for offline postmortem analysis. 22562306a36Sopenharmony_ci The feature can be enabled/disabled on the kernel command line. 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci Say Y here to enable "download mode" by default. 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ciconfig SYSFB 23062306a36Sopenharmony_ci bool 23162306a36Sopenharmony_ci select BOOT_VESA_SUPPORT 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ciconfig SYSFB_SIMPLEFB 23462306a36Sopenharmony_ci bool "Mark VGA/VBE/EFI FB as generic system framebuffer" 23562306a36Sopenharmony_ci depends on X86 || EFI 23662306a36Sopenharmony_ci select SYSFB 23762306a36Sopenharmony_ci help 23862306a36Sopenharmony_ci Firmwares often provide initial graphics framebuffers so the BIOS, 23962306a36Sopenharmony_ci bootloader or kernel can show basic video-output during boot for 24062306a36Sopenharmony_ci user-guidance and debugging. Historically, x86 used the VESA BIOS 24162306a36Sopenharmony_ci Extensions and EFI-framebuffers for this, which are mostly limited 24262306a36Sopenharmony_ci to x86 BIOS or EFI systems. 24362306a36Sopenharmony_ci This option, if enabled, marks VGA/VBE/EFI framebuffers as generic 24462306a36Sopenharmony_ci framebuffers so the new generic system-framebuffer drivers can be 24562306a36Sopenharmony_ci used instead. If the framebuffer is not compatible with the generic 24662306a36Sopenharmony_ci modes, it is advertised as fallback platform framebuffer so legacy 24762306a36Sopenharmony_ci drivers like efifb, vesafb and uvesafb can pick it up. 24862306a36Sopenharmony_ci If this option is not selected, all system framebuffers are always 24962306a36Sopenharmony_ci marked as fallback platform framebuffers as usual. 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will 25262306a36Sopenharmony_ci not be able to pick up generic system framebuffers if this option 25362306a36Sopenharmony_ci is selected. You are highly encouraged to enable simplefb as 25462306a36Sopenharmony_ci replacement if you select this option. simplefb can correctly deal 25562306a36Sopenharmony_ci with generic system framebuffers. But you should still keep vesafb 25662306a36Sopenharmony_ci and others enabled as fallback if a system framebuffer is 25762306a36Sopenharmony_ci incompatible with simplefb. 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ci If unsure, say Y. 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ciconfig TI_SCI_PROTOCOL 26262306a36Sopenharmony_ci tristate "TI System Control Interface (TISCI) Message Protocol" 26362306a36Sopenharmony_ci depends on TI_MESSAGE_MANAGER 26462306a36Sopenharmony_ci help 26562306a36Sopenharmony_ci TI System Control Interface (TISCI) Message Protocol is used to manage 26662306a36Sopenharmony_ci compute systems such as ARM, DSP etc with the system controller in 26762306a36Sopenharmony_ci complex System on Chip(SoC) such as those found on certain keystone 26862306a36Sopenharmony_ci generation SoC from TI. 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci System controller provides various facilities including power 27162306a36Sopenharmony_ci management function support. 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci This protocol library is used by client drivers to use the features 27462306a36Sopenharmony_ci provided by the system controller. 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ciconfig TRUSTED_FOUNDATIONS 27762306a36Sopenharmony_ci bool "Trusted Foundations secure monitor support" 27862306a36Sopenharmony_ci depends on ARM && CPU_V7 27962306a36Sopenharmony_ci help 28062306a36Sopenharmony_ci Some devices (including most early Tegra-based consumer devices on 28162306a36Sopenharmony_ci the market) are booted with the Trusted Foundations secure monitor 28262306a36Sopenharmony_ci active, requiring some core operations to be performed by the secure 28362306a36Sopenharmony_ci monitor instead of the kernel. 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci This option allows the kernel to invoke the secure monitor whenever 28662306a36Sopenharmony_ci required on devices using Trusted Foundations. See the functions and 28762306a36Sopenharmony_ci comments in linux/firmware/trusted_foundations.h or the device tree 28862306a36Sopenharmony_ci bindings for "tlm,trusted-foundations" for details on how to use it. 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci Choose N if you don't know what this is about. 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ciconfig TURRIS_MOX_RWTM 29362306a36Sopenharmony_ci tristate "Turris Mox rWTM secure firmware driver" 29462306a36Sopenharmony_ci depends on ARCH_MVEBU || COMPILE_TEST 29562306a36Sopenharmony_ci depends on HAS_DMA && OF 29662306a36Sopenharmony_ci depends on MAILBOX 29762306a36Sopenharmony_ci select HW_RANDOM 29862306a36Sopenharmony_ci select ARMADA_37XX_RWTM_MBOX 29962306a36Sopenharmony_ci help 30062306a36Sopenharmony_ci This driver communicates with the firmware on the Cortex-M3 secure 30162306a36Sopenharmony_ci processor of the Turris Mox router. Enable if you are building for 30262306a36Sopenharmony_ci Turris Mox, and you will be able to read the device serial number and 30362306a36Sopenharmony_ci other manufacturing data and also utilize the Entropy Bit Generator 30462306a36Sopenharmony_ci for hardware random number generation. 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_cisource "drivers/firmware/arm_ffa/Kconfig" 30762306a36Sopenharmony_cisource "drivers/firmware/broadcom/Kconfig" 30862306a36Sopenharmony_cisource "drivers/firmware/cirrus/Kconfig" 30962306a36Sopenharmony_cisource "drivers/firmware/google/Kconfig" 31062306a36Sopenharmony_cisource "drivers/firmware/efi/Kconfig" 31162306a36Sopenharmony_cisource "drivers/firmware/imx/Kconfig" 31262306a36Sopenharmony_cisource "drivers/firmware/meson/Kconfig" 31362306a36Sopenharmony_cisource "drivers/firmware/psci/Kconfig" 31462306a36Sopenharmony_cisource "drivers/firmware/smccc/Kconfig" 31562306a36Sopenharmony_cisource "drivers/firmware/tegra/Kconfig" 31662306a36Sopenharmony_cisource "drivers/firmware/xilinx/Kconfig" 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ciendmenu 319