xref: /openbmc/linux/drivers/firmware/Kconfig (revision 94bccc34)
11da177e4SLinus Torvalds#
21da177e4SLinus Torvalds# For a description of the syntax of this configuration file,
31da177e4SLinus Torvalds# see Documentation/kbuild/kconfig-language.txt.
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
61da177e4SLinus Torvaldsmenu "Firmware Drivers"
71da177e4SLinus Torvalds
8bff60792SMark Rutlandconfig ARM_PSCI_FW
9bff60792SMark Rutland	bool
10bff60792SMark Rutland
11ea8b1c4aSKevin Brodskyconfig ARM_PSCI_CHECKER
12ea8b1c4aSKevin Brodsky	bool "ARM PSCI checker"
1395140ed1SArnd Bergmann	depends on ARM_PSCI_FW && HOTPLUG_CPU && CPU_IDLE && !TORTURE_TEST
14ea8b1c4aSKevin Brodsky	help
15ea8b1c4aSKevin Brodsky	  Run the PSCI checker during startup. This checks that hotplug and
16ea8b1c4aSKevin Brodsky	  suspend operations work correctly when using PSCI.
17ea8b1c4aSKevin Brodsky
18ea8b1c4aSKevin Brodsky	  The torture tests may interfere with the PSCI checker by turning CPUs
19ea8b1c4aSKevin Brodsky	  on and off through hotplug, so for now torture tests and PSCI checker
20ea8b1c4aSKevin Brodsky	  are mutually exclusive.
21ea8b1c4aSKevin Brodsky
22aa4f886fSSudeep Hollaconfig ARM_SCMI_PROTOCOL
23aa4f886fSSudeep Holla	bool "ARM System Control and Management Interface (SCMI) Message Protocol"
24aa4f886fSSudeep Holla	depends on ARM || ARM64 || COMPILE_TEST
25aa4f886fSSudeep Holla	depends on MAILBOX
26aa4f886fSSudeep Holla	help
27aa4f886fSSudeep Holla	  ARM System Control and Management Interface (SCMI) protocol is a
28aa4f886fSSudeep Holla	  set of operating system-independent software interfaces that are
29aa4f886fSSudeep Holla	  used in system management. SCMI is extensible and currently provides
30aa4f886fSSudeep Holla	  interfaces for: Discovery and self-description of the interfaces
31aa4f886fSSudeep Holla	  it supports, Power domain management which is the ability to place
32aa4f886fSSudeep Holla	  a given device or domain into the various power-saving states that
33aa4f886fSSudeep Holla	  it supports, Performance management which is the ability to control
34aa4f886fSSudeep Holla	  the performance of a domain that is composed of compute engines
35aa4f886fSSudeep Holla	  such as application processors and other accelerators, Clock
36aa4f886fSSudeep Holla	  management which is the ability to set and inquire rates on platform
37aa4f886fSSudeep Holla	  managed clocks and Sensor management which is the ability to read
38aa4f886fSSudeep Holla	  sensor data, and be notified of sensor value.
39aa4f886fSSudeep Holla
40aa4f886fSSudeep Holla	  This protocol library provides interface for all the client drivers
41aa4f886fSSudeep Holla	  making use of the features offered by the SCMI.
42aa4f886fSSudeep Holla
43898216c9SSudeep Hollaconfig ARM_SCMI_POWER_DOMAIN
44898216c9SSudeep Holla	tristate "SCMI power domain driver"
45898216c9SSudeep Holla	depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
46898216c9SSudeep Holla	default y
47898216c9SSudeep Holla	select PM_GENERIC_DOMAINS if PM
48898216c9SSudeep Holla	help
49898216c9SSudeep Holla	  This enables support for the SCMI power domains which can be
50898216c9SSudeep Holla	  enabled or disabled via the SCP firmware
51898216c9SSudeep Holla
52898216c9SSudeep Holla	  This driver can also be built as a module.  If so, the module
53898216c9SSudeep Holla	  will be called scmi_pm_domain. Note this may needed early in boot
54898216c9SSudeep Holla	  before rootfs may be available.
55898216c9SSudeep Holla
568cb7cf56SSudeep Hollaconfig ARM_SCPI_PROTOCOL
578cb7cf56SSudeep Holla	tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
5892f3e6ebSJean Delvare	depends on ARM || ARM64 || COMPILE_TEST
598f1498c0SSudeep Holla	depends on MAILBOX
608cb7cf56SSudeep Holla	help
618cb7cf56SSudeep Holla	  System Control and Power Interface (SCPI) Message Protocol is
628cb7cf56SSudeep Holla	  defined for the purpose of communication between the Application
638cb7cf56SSudeep Holla	  Cores(AP) and the System Control Processor(SCP). The MHU peripheral
648cb7cf56SSudeep Holla	  provides a mechanism for inter-processor communication between SCP
658cb7cf56SSudeep Holla	  and AP.
668cb7cf56SSudeep Holla
678cb7cf56SSudeep Holla	  SCP controls most of the power managament on the Application
688cb7cf56SSudeep Holla	  Processors. It offers control and management of: the core/cluster
698cb7cf56SSudeep Holla	  power states, various power domain DVFS including the core/cluster,
708cb7cf56SSudeep Holla	  certain system clocks configuration, thermal sensors and many
718cb7cf56SSudeep Holla	  others.
728cb7cf56SSudeep Holla
738cb7cf56SSudeep Holla	  This protocol library provides interface for all the client drivers
748cb7cf56SSudeep Holla	  making use of the features offered by the SCP.
758cb7cf56SSudeep Holla
768bec4337SSudeep Hollaconfig ARM_SCPI_POWER_DOMAIN
778bec4337SSudeep Holla	tristate "SCPI power domain driver"
78e517dfe6SArnd Bergmann	depends on ARM_SCPI_PROTOCOL || (COMPILE_TEST && OF)
798bec4337SSudeep Holla	default y
808bec4337SSudeep Holla	select PM_GENERIC_DOMAINS if PM
818bec4337SSudeep Holla	help
828bec4337SSudeep Holla	  This enables support for the SCPI power domains which can be
838bec4337SSudeep Holla	  enabled or disabled via the SCP firmware
848bec4337SSudeep Holla
85ad6eb31eSJames Morseconfig ARM_SDE_INTERFACE
86ad6eb31eSJames Morse	bool "ARM Software Delegated Exception Interface (SDEI)"
87ad6eb31eSJames Morse	depends on ARM64
88ad6eb31eSJames Morse	help
89ad6eb31eSJames Morse	  The Software Delegated Exception Interface (SDEI) is an ARM
90ad6eb31eSJames Morse	  standard for registering callbacks from the platform firmware
91ad6eb31eSJames Morse	  into the OS. This is typically used to implement RAS notifications.
92ad6eb31eSJames Morse
931da177e4SLinus Torvaldsconfig EDD
945d18639aSChris Wedgwood	tristate "BIOS Enhanced Disk Drive calls determine boot disk"
959b6e3e42SMike Frysinger	depends on X86
961da177e4SLinus Torvalds	help
971da177e4SLinus Torvalds	  Say Y or M here if you want to enable BIOS Enhanced Disk Drive
981da177e4SLinus Torvalds	  Services real mode BIOS calls to determine which disk
991da177e4SLinus Torvalds	  BIOS tries boot from.  This information is then exported via sysfs.
1001da177e4SLinus Torvalds
1011da177e4SLinus Torvalds	  This option is experimental and is known to fail to boot on some
1021da177e4SLinus Torvalds          obscure configurations. Most disk controller BIOS vendors do
1031da177e4SLinus Torvalds          not yet implement this feature.
1041da177e4SLinus Torvalds
1058c4dd606STim Gardnerconfig EDD_OFF
1068c4dd606STim Gardner	bool "Sets default behavior for EDD detection to off"
1078c4dd606STim Gardner	depends on EDD
1088c4dd606STim Gardner	default n
1098c4dd606STim Gardner	help
1108c4dd606STim Gardner	  Say Y if you want EDD disabled by default, even though it is compiled into the
1118c4dd606STim Gardner	  kernel. Say N if you want EDD enabled by default. EDD can be dynamically set
1128c4dd606STim Gardner	  using the kernel parameter 'edd={on|skipmbr|off}'.
1138c4dd606STim Gardner
11469ac9cd6SBernhard Walleconfig FIRMWARE_MEMMAP
1156a108a14SDavid Rientjes    bool "Add firmware-provided memory map to sysfs" if EXPERT
1169b6e3e42SMike Frysinger    default X86
11769ac9cd6SBernhard Walle    help
11869ac9cd6SBernhard Walle      Add the firmware-provided (unmodified) memory map to /sys/firmware/memmap.
11969ac9cd6SBernhard Walle      That memory map is used for example by kexec to set up parameter area
12069ac9cd6SBernhard Walle      for the next kernel, but can also be used for debugging purposes.
12169ac9cd6SBernhard Walle
12269ac9cd6SBernhard Walle      See also Documentation/ABI/testing/sysfs-firmware-memmap.
12369ac9cd6SBernhard Walle
1241da177e4SLinus Torvaldsconfig EFI_PCDP
1251da177e4SLinus Torvalds	bool "Console device selection via EFI PCDP or HCDP table"
1261da177e4SLinus Torvalds	depends on ACPI && EFI && IA64
1271da177e4SLinus Torvalds	default y if IA64
1281da177e4SLinus Torvalds	help
1291da177e4SLinus Torvalds	  If your firmware supplies the PCDP table, and you want to
1301da177e4SLinus Torvalds	  automatically use the primary console device it describes
1311da177e4SLinus Torvalds	  as the Linux console, say Y here.
1321da177e4SLinus Torvalds
1331da177e4SLinus Torvalds	  If your firmware supplies the HCDP table, and you want to
1341da177e4SLinus Torvalds	  use the first serial port it describes as the Linux console,
1351da177e4SLinus Torvalds	  say Y here.  If your EFI ConOut path contains only a UART
1361da177e4SLinus Torvalds	  device, it will become the console automatically.  Otherwise,
1371da177e4SLinus Torvalds	  you must specify the "console=hcdp" kernel boot argument.
1381da177e4SLinus Torvalds
1391da177e4SLinus Torvalds	  Neither the PCDP nor the HCDP affects naming of serial devices,
1401da177e4SLinus Torvalds	  so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending
1411da177e4SLinus Torvalds	  on how the driver discovers devices.
1421da177e4SLinus Torvalds
1431da177e4SLinus Torvalds	  You must also enable the appropriate drivers (serial, VGA, etc.)
1441da177e4SLinus Torvalds
145631dd1a8SJustin P. Mattock	  See DIG64_HCDPv20_042804.pdf available from
146631dd1a8SJustin P. Mattock	  <http://www.dig64.org/specifications/>
1471da177e4SLinus Torvalds
1484f5c791aSLennart Poetteringconfig DMIID
1494f5c791aSLennart Poettering    bool "Export DMI identification via sysfs to userspace"
1504f5c791aSLennart Poettering    depends on DMI
1514f5c791aSLennart Poettering    default y
1524f5c791aSLennart Poettering	help
1534f5c791aSLennart Poettering	  Say Y here if you want to query SMBIOS/DMI system identification
1544f5c791aSLennart Poettering	  information from userspace through /sys/class/dmi/id/ or if you want
1554f5c791aSLennart Poettering	  DMI-based module auto-loading.
1564f5c791aSLennart Poettering
157948af1f0SMike Waychisonconfig DMI_SYSFS
158948af1f0SMike Waychison	tristate "DMI table support in sysfs"
159948af1f0SMike Waychison	depends on SYSFS && DMI
160948af1f0SMike Waychison	default n
161948af1f0SMike Waychison	help
162948af1f0SMike Waychison	  Say Y or M here to enable the exporting of the raw DMI table
163948af1f0SMike Waychison	  data via sysfs.  This is useful for consuming the data without
164948af1f0SMike Waychison	  requiring any access to /dev/mem at all.  Tables are found
165948af1f0SMike Waychison	  under /sys/firmware/dmi when this option is enabled and
166948af1f0SMike Waychison	  loaded.
167948af1f0SMike Waychison
168cf074402SArd Biesheuvelconfig DMI_SCAN_MACHINE_NON_EFI_FALLBACK
169cf074402SArd Biesheuvel	bool
170cf074402SArd Biesheuvel
171138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT_FIND
172138fe4e0SKonrad Rzeszutek	bool "iSCSI Boot Firmware Table Attributes"
173*94bccc34SThomas Tai	depends on X86 && ISCSI_IBFT
174138fe4e0SKonrad Rzeszutek	default n
175138fe4e0SKonrad Rzeszutek	help
176138fe4e0SKonrad Rzeszutek	  This option enables the kernel to find the region of memory
177138fe4e0SKonrad Rzeszutek	  in which the ISCSI Boot Firmware Table (iBFT) resides. This
178138fe4e0SKonrad Rzeszutek	  is necessary for iSCSI Boot Firmware Table Attributes module to work
179138fe4e0SKonrad Rzeszutek	  properly.
180138fe4e0SKonrad Rzeszutek
181138fe4e0SKonrad Rzeszutekconfig ISCSI_IBFT
182138fe4e0SKonrad Rzeszutek	tristate "iSCSI Boot Firmware Table Attributes module"
183b33a84a3SMike Christie	select ISCSI_BOOT_SYSFS
184*94bccc34SThomas Tai	select ISCSI_IBFT_FIND if X86
185*94bccc34SThomas Tai	depends on ACPI && SCSI && SCSI_LOWLEVEL
186138fe4e0SKonrad Rzeszutek	default	n
187138fe4e0SKonrad Rzeszutek	help
188138fe4e0SKonrad Rzeszutek	  This option enables support for detection and exposing of iSCSI
189138fe4e0SKonrad Rzeszutek	  Boot Firmware Table (iBFT) via sysfs to userspace. If you wish to
190138fe4e0SKonrad Rzeszutek	  detect iSCSI boot parameters dynamically during system boot, say Y.
191138fe4e0SKonrad Rzeszutek	  Otherwise, say N.
192138fe4e0SKonrad Rzeszutek
1934e3d6065SEric Anholtconfig RASPBERRYPI_FIRMWARE
1944e3d6065SEric Anholt	tristate "Raspberry Pi Firmware Driver"
1954e3d6065SEric Anholt	depends on BCM2835_MBOX
1964e3d6065SEric Anholt	help
1974e3d6065SEric Anholt	  This option enables support for communicating with the firmware on the
1984e3d6065SEric Anholt	  Raspberry Pi.
1994e3d6065SEric Anholt
20075f3e8e4SGabriel Somloconfig FW_CFG_SYSFS
20175f3e8e4SGabriel Somlo	tristate "QEMU fw_cfg device support in sysfs"
20275f3e8e4SGabriel Somlo	depends on SYSFS && (ARM || ARM64 || PPC_PMAC || SPARC || X86)
20328c09ec4SArnd Bergmann	depends on HAS_IOPORT_MAP
20475f3e8e4SGabriel Somlo	default n
20575f3e8e4SGabriel Somlo	help
20675f3e8e4SGabriel Somlo	  Say Y or M here to enable the exporting of the QEMU firmware
20775f3e8e4SGabriel Somlo	  configuration (fw_cfg) file entries via sysfs. Entries are
20875f3e8e4SGabriel Somlo	  found under /sys/firmware/fw_cfg when this option is enabled
20975f3e8e4SGabriel Somlo	  and loaded.
21075f3e8e4SGabriel Somlo
21175f3e8e4SGabriel Somloconfig FW_CFG_SYSFS_CMDLINE
21275f3e8e4SGabriel Somlo	bool "QEMU fw_cfg device parameter parsing"
21375f3e8e4SGabriel Somlo	depends on FW_CFG_SYSFS
21475f3e8e4SGabriel Somlo	help
21575f3e8e4SGabriel Somlo	  Allow the qemu_fw_cfg device to be initialized via the kernel
21675f3e8e4SGabriel Somlo	  command line or using a module parameter.
21775f3e8e4SGabriel Somlo	  WARNING: Using incorrect parameters (base address in particular)
21875f3e8e4SGabriel Somlo	  may crash your system.
21975f3e8e4SGabriel Somlo
2207ca5ce89SRichard Gongconfig INTEL_STRATIX10_SERVICE
2217ca5ce89SRichard Gong	tristate "Intel Stratix10 Service Layer"
2227ca5ce89SRichard Gong	depends on HAVE_ARM_SMCCC
2237ca5ce89SRichard Gong	default n
2247ca5ce89SRichard Gong	help
2257ca5ce89SRichard Gong	  Intel Stratix10 service layer runs at privileged exception level,
2267ca5ce89SRichard Gong	  interfaces with the service providers (FPGA manager is one of them)
2277ca5ce89SRichard Gong	  and manages secure monitor call to communicate with secure monitor
2287ca5ce89SRichard Gong	  software at secure monitor exception level.
2297ca5ce89SRichard Gong
2307ca5ce89SRichard Gong	  Say Y here if you want Stratix10 service layer support.
2317ca5ce89SRichard Gong
232916f743dSKumar Galaconfig QCOM_SCM
233916f743dSKumar Gala	bool
234916f743dSKumar Gala	depends on ARM || ARM64
235dd4fe5b2SBjorn Andersson	select RESET_CONTROLLER
236916f743dSKumar Gala
23750b956f3SAndy Grossconfig QCOM_SCM_32
23850b956f3SAndy Gross	def_bool y
23950b956f3SAndy Gross	depends on QCOM_SCM && ARM
24050b956f3SAndy Gross
24150b956f3SAndy Grossconfig QCOM_SCM_64
24250b956f3SAndy Gross	def_bool y
24350b956f3SAndy Gross	depends on QCOM_SCM && ARM64
24450b956f3SAndy Gross
2458c1b7dc9SBjorn Anderssonconfig QCOM_SCM_DOWNLOAD_MODE_DEFAULT
2468c1b7dc9SBjorn Andersson	bool "Qualcomm download mode enabled by default"
2478c1b7dc9SBjorn Andersson	depends on QCOM_SCM
2488c1b7dc9SBjorn Andersson	help
2498c1b7dc9SBjorn Andersson	  A device with "download mode" enabled will upon an unexpected
2508c1b7dc9SBjorn Andersson	  warm-restart enter a special debug mode that allows the user to
2518c1b7dc9SBjorn Andersson	  "download" memory content over USB for offline postmortem analysis.
2528c1b7dc9SBjorn Andersson	  The feature can be enabled/disabled on the kernel command line.
2538c1b7dc9SBjorn Andersson
2548c1b7dc9SBjorn Andersson	  Say Y here to enable "download mode" by default.
2558c1b7dc9SBjorn Andersson
256aa276781SNishanth Menonconfig TI_SCI_PROTOCOL
257aa276781SNishanth Menon	tristate "TI System Control Interface (TISCI) Message Protocol"
258aa276781SNishanth Menon	depends on TI_MESSAGE_MANAGER
259aa276781SNishanth Menon	help
260aa276781SNishanth Menon	  TI System Control Interface (TISCI) Message Protocol is used to manage
261aa276781SNishanth Menon	  compute systems such as ARM, DSP etc with the system controller in
262aa276781SNishanth Menon	  complex System on Chip(SoC) such as those found on certain keystone
263aa276781SNishanth Menon	  generation SoC from TI.
264aa276781SNishanth Menon
265aa276781SNishanth Menon	  System controller provides various facilities including power
266aa276781SNishanth Menon	  management function support.
267aa276781SNishanth Menon
268aa276781SNishanth Menon	  This protocol library is used by client drivers to use the features
269aa276781SNishanth Menon	  provided by the system controller.
270aa276781SNishanth Menon
27198dd64f3SJens Wiklanderconfig HAVE_ARM_SMCCC
27298dd64f3SJens Wiklander	bool
27398dd64f3SJens Wiklander
274f6e734a8SRafał Miłeckisource "drivers/firmware/broadcom/Kconfig"
27574c5b31cSMike Waychisonsource "drivers/firmware/google/Kconfig"
27604851772SMatt Flemingsource "drivers/firmware/efi/Kconfig"
277edbee095SDong Aishengsource "drivers/firmware/imx/Kconfig"
2782c4ddb21SCarlo Caionesource "drivers/firmware/meson/Kconfig"
279ca791d7fSThierry Redingsource "drivers/firmware/tegra/Kconfig"
28076582671SRajan Vajasource "drivers/firmware/xilinx/Kconfig"
28174c5b31cSMike Waychison
2821da177e4SLinus Torvaldsendmenu
283