1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig COREBOOT_FIRMWARE 3 bool "coreboot firmware drivers" 4 default GOOGLE_FIRMWARE 5 default n 6 help 7 These firmware drivers are used by devices running coreboot 8 firmware, including Chromebooks and some Google servers. 9 They include shared support for coreboot table entries and 10 drivers for CBMEM, framebuffer, firmware console and VPD records. 11 If in doubt, say "N". 12 13if COREBOOT_FIRMWARE 14 15config GOOGLE_SMI 16 tristate "SMI interface for Google platforms" 17 depends on X86 && ACPI && DMI 18 help 19 Say Y here if you want to enable SMI callbacks for Google 20 platforms. This provides an interface for writing to and 21 clearing the event log. If CONFIG_EFI is also enabled this 22 driver provides an interface for reading and writing NVRAM 23 variables. 24 25config COREBOOT_CBMEM 26 tristate "CBMEM entries in sysfs" 27 depends on COREBOOT_TABLE 28 default GOOGLE_CBMEM 29 help 30 CBMEM is a downwards-growing memory region created by the 31 Coreboot BIOS containing tagged data structures from the 32 BIOS. These data structures expose things like the verified 33 boot firmware variables, flash layout, firmware event log, 34 and more. 35 36 This option enables the cbmem module, which causes the 37 kernel to search for Coreboot CBMEM entries, and expose the 38 memory for each entry in sysfs under 39 /sys/bus/coreboot/devices/cbmem-<id>. 40 41config COREBOOT_TABLE 42 tristate "Coreboot Table Access" 43 depends on HAS_IOMEM && (ACPI || OF) 44 default GOOGLE_COREBOOT_TABLE 45 help 46 This option enables the coreboot_table module, which provides other 47 firmware modules access to the coreboot table. The coreboot table 48 pointer is accessed through the ACPI "GOOGCB00" object or the 49 device tree node /firmware/coreboot. 50 If unsure say N. 51 52config COREBOOT_CFR 53 tristate "coreboot CFR firmware attributes" 54 depends on EFI 55 depends on COREBOOT_TABLE 56 depends on HAS_IOPORT 57 select CRC32 58 select FW_ATTR_CLASS 59 help 60 This driver parses the coreboot CFR table and exposes runtime EFI 61 variable-backed options through the firmware-attributes sysfs 62 interface. 63 64 If you have a system running coreboot with CFR runtime 65 configuration support, say Y or M here. 66 67config COREBOOT_MEMCONSOLE_COMMON 68 tristate 69 depends on GOOGLE_MEMCONSOLE_X86_LEGACY || COREBOOT_MEMCONSOLE 70 default GOOGLE_MEMCONSOLE 71 72config GOOGLE_MEMCONSOLE_X86_LEGACY 73 tristate "Firmware Memory Console - X86 Legacy support" 74 depends on X86 && ACPI && DMI 75 select COREBOOT_MEMCONSOLE_COMMON 76 help 77 This option enables the kernel to search for a firmware log in 78 the EBDA on Google servers. If found, this log is exported to 79 userland in the file /sys/firmware/log. 80 This driver is limited to x86 systems that expose the legacy 81 Google EBDA console format. 82 83config COREBOOT_FRAMEBUFFER 84 tristate "Coreboot Framebuffer" 85 depends on COREBOOT_TABLE 86 default GOOGLE_FRAMEBUFFER_COREBOOT 87 help 88 This option enables the kernel to search for a framebuffer in 89 the coreboot table. If found, it is registered with a platform 90 device of type coreboot-framebuffer. Using the old device of 91 type simple-framebuffer is deprecated. 92 93config COREBOOT_MEMCONSOLE 94 tristate "Firmware Memory Console" 95 depends on COREBOOT_TABLE 96 select COREBOOT_MEMCONSOLE_COMMON 97 default GOOGLE_MEMCONSOLE_COREBOOT 98 help 99 This option enables the kernel to search for a firmware log in 100 the coreboot table. If found, this log is exported to userland 101 in the file /sys/firmware/log. 102 This is the coreboot-table backed variant of the firmware memory 103 console driver. 104 105config GOOGLE_VPD 106 tristate "Vital Product Data" 107 depends on COREBOOT_TABLE 108 help 109 This option enables the kernel to expose the content of Google VPD 110 under /sys/firmware/vpd. 111 VPD records carry firmware-provided key/value data used by 112 Google devices. 113 114endif # COREBOOT_FIRMWARE 115 116config GOOGLE_FIRMWARE 117 bool 118 transitional 119 120config GOOGLE_CBMEM 121 tristate 122 transitional 123 124config GOOGLE_COREBOOT_TABLE 125 tristate 126 transitional 127 128config GOOGLE_MEMCONSOLE 129 tristate 130 transitional 131 132config GOOGLE_FRAMEBUFFER_COREBOOT 133 tristate 134 transitional 135 136config GOOGLE_MEMCONSOLE_COREBOOT 137 tristate 138 transitional 139