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