summaryrefslogtreecommitdiff
path: root/drivers/firmware/coreboot/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firmware/coreboot/Kconfig')
-rw-r--r--drivers/firmware/coreboot/Kconfig138
1 files changed, 138 insertions, 0 deletions
diff --git a/drivers/firmware/coreboot/Kconfig b/drivers/firmware/coreboot/Kconfig
new file mode 100644
index 000000000000..acfc7d187228
--- /dev/null
+++ b/drivers/firmware/coreboot/Kconfig
@@ -0,0 +1,138 @@
+# SPDX-License-Identifier: GPL-2.0-only
+menuconfig COREBOOT_FIRMWARE
+ bool "coreboot firmware drivers"
+ default GOOGLE_FIRMWARE
+ default n
+ help
+ These firmware drivers are used by devices running coreboot
+ firmware, including Chromebooks and some Google servers.
+ They include shared support for coreboot table entries and
+ drivers for CBMEM, framebuffer, firmware console and VPD records.
+ If in doubt, say "N".
+
+if COREBOOT_FIRMWARE
+
+config GOOGLE_SMI
+ tristate "SMI interface for Google platforms"
+ depends on X86 && ACPI && DMI
+ help
+ Say Y here if you want to enable SMI callbacks for Google
+ platforms. This provides an interface for writing to and
+ clearing the event log. If CONFIG_EFI is also enabled this
+ driver provides an interface for reading and writing NVRAM
+ variables.
+
+config COREBOOT_CBMEM
+ tristate "CBMEM entries in sysfs"
+ depends on COREBOOT_TABLE
+ default GOOGLE_CBMEM
+ help
+ CBMEM is a downwards-growing memory region created by the
+ Coreboot BIOS containing tagged data structures from the
+ BIOS. These data structures expose things like the verified
+ boot firmware variables, flash layout, firmware event log,
+ and more.
+
+ This option enables the cbmem module, which causes the
+ kernel to search for Coreboot CBMEM entries, and expose the
+ memory for each entry in sysfs under
+ /sys/bus/coreboot/devices/cbmem-<id>.
+
+config COREBOOT_TABLE
+ tristate "Coreboot Table Access"
+ depends on HAS_IOMEM && (ACPI || OF)
+ default GOOGLE_COREBOOT_TABLE
+ help
+ This option enables the coreboot_table module, which provides other
+ firmware modules access to the coreboot table. The coreboot table
+ pointer is accessed through the ACPI "GOOGCB00" object or the
+ device tree node /firmware/coreboot.
+ If unsure say N.
+
+config COREBOOT_CFR
+ tristate "coreboot CFR firmware attributes"
+ depends on EFI
+ depends on COREBOOT_TABLE
+ depends on HAS_IOPORT
+ select CRC32
+ select FW_ATTR_CLASS
+ help
+ This driver parses the coreboot CFR table and exposes runtime EFI
+ variable-backed options through the firmware-attributes sysfs
+ interface.
+
+ If you have a system running coreboot with CFR runtime
+ configuration support, say Y or M here.
+
+config COREBOOT_MEMCONSOLE_COMMON
+ tristate
+ depends on GOOGLE_MEMCONSOLE_X86_LEGACY || COREBOOT_MEMCONSOLE
+ default GOOGLE_MEMCONSOLE
+
+config GOOGLE_MEMCONSOLE_X86_LEGACY
+ tristate "Firmware Memory Console - X86 Legacy support"
+ depends on X86 && ACPI && DMI
+ select COREBOOT_MEMCONSOLE_COMMON
+ help
+ This option enables the kernel to search for a firmware log in
+ the EBDA on Google servers. If found, this log is exported to
+ userland in the file /sys/firmware/log.
+ This driver is limited to x86 systems that expose the legacy
+ Google EBDA console format.
+
+config COREBOOT_FRAMEBUFFER
+ tristate "Coreboot Framebuffer"
+ depends on COREBOOT_TABLE
+ default GOOGLE_FRAMEBUFFER_COREBOOT
+ help
+ This option enables the kernel to search for a framebuffer in
+ the coreboot table. If found, it is registered with a platform
+ device of type coreboot-framebuffer. Using the old device of
+ type simple-framebuffer is deprecated.
+
+config COREBOOT_MEMCONSOLE
+ tristate "Firmware Memory Console"
+ depends on COREBOOT_TABLE
+ select COREBOOT_MEMCONSOLE_COMMON
+ default GOOGLE_MEMCONSOLE_COREBOOT
+ help
+ This option enables the kernel to search for a firmware log in
+ the coreboot table. If found, this log is exported to userland
+ in the file /sys/firmware/log.
+ This is the coreboot-table backed variant of the firmware memory
+ console driver.
+
+config GOOGLE_VPD
+ tristate "Vital Product Data"
+ depends on COREBOOT_TABLE
+ help
+ This option enables the kernel to expose the content of Google VPD
+ under /sys/firmware/vpd.
+ VPD records carry firmware-provided key/value data used by
+ Google devices.
+
+endif # COREBOOT_FIRMWARE
+
+config GOOGLE_FIRMWARE
+ bool
+ transitional
+
+config GOOGLE_CBMEM
+ tristate
+ transitional
+
+config GOOGLE_COREBOOT_TABLE
+ tristate
+ transitional
+
+config GOOGLE_MEMCONSOLE
+ tristate
+ transitional
+
+config GOOGLE_FRAMEBUFFER_COREBOOT
+ tristate
+ transitional
+
+config GOOGLE_MEMCONSOLE_COREBOOT
+ tristate
+ transitional