144e33a5aSSean Rhodes# SPDX-License-Identifier: GPL-2.0-only 244e33a5aSSean Rhodesmenuconfig COREBOOT_FIRMWARE 344e33a5aSSean Rhodes bool "coreboot firmware drivers" 444e33a5aSSean Rhodes default GOOGLE_FIRMWARE 544e33a5aSSean Rhodes default n 644e33a5aSSean Rhodes help 744e33a5aSSean Rhodes These firmware drivers are used by devices running coreboot 844e33a5aSSean Rhodes firmware, including Chromebooks and some Google servers. 944e33a5aSSean Rhodes They include shared support for coreboot table entries and 1044e33a5aSSean Rhodes drivers for CBMEM, framebuffer, firmware console and VPD records. 1144e33a5aSSean Rhodes If in doubt, say "N". 1244e33a5aSSean Rhodes 1344e33a5aSSean Rhodesif COREBOOT_FIRMWARE 1444e33a5aSSean Rhodes 1544e33a5aSSean Rhodesconfig GOOGLE_SMI 1644e33a5aSSean Rhodes tristate "SMI interface for Google platforms" 1744e33a5aSSean Rhodes depends on X86 && ACPI && DMI 1844e33a5aSSean Rhodes help 1944e33a5aSSean Rhodes Say Y here if you want to enable SMI callbacks for Google 2044e33a5aSSean Rhodes platforms. This provides an interface for writing to and 2144e33a5aSSean Rhodes clearing the event log. If CONFIG_EFI is also enabled this 2244e33a5aSSean Rhodes driver provides an interface for reading and writing NVRAM 2344e33a5aSSean Rhodes variables. 2444e33a5aSSean Rhodes 2544e33a5aSSean Rhodesconfig COREBOOT_CBMEM 2644e33a5aSSean Rhodes tristate "CBMEM entries in sysfs" 2744e33a5aSSean Rhodes depends on COREBOOT_TABLE 2844e33a5aSSean Rhodes default GOOGLE_CBMEM 2944e33a5aSSean Rhodes help 3044e33a5aSSean Rhodes CBMEM is a downwards-growing memory region created by the 3144e33a5aSSean Rhodes Coreboot BIOS containing tagged data structures from the 3244e33a5aSSean Rhodes BIOS. These data structures expose things like the verified 3344e33a5aSSean Rhodes boot firmware variables, flash layout, firmware event log, 3444e33a5aSSean Rhodes and more. 3544e33a5aSSean Rhodes 3644e33a5aSSean Rhodes This option enables the cbmem module, which causes the 3744e33a5aSSean Rhodes kernel to search for Coreboot CBMEM entries, and expose the 3844e33a5aSSean Rhodes memory for each entry in sysfs under 3944e33a5aSSean Rhodes /sys/bus/coreboot/devices/cbmem-<id>. 4044e33a5aSSean Rhodes 4144e33a5aSSean Rhodesconfig COREBOOT_TABLE 4244e33a5aSSean Rhodes tristate "Coreboot Table Access" 4344e33a5aSSean Rhodes depends on HAS_IOMEM && (ACPI || OF) 4444e33a5aSSean Rhodes default GOOGLE_COREBOOT_TABLE 4544e33a5aSSean Rhodes help 4644e33a5aSSean Rhodes This option enables the coreboot_table module, which provides other 4744e33a5aSSean Rhodes firmware modules access to the coreboot table. The coreboot table 4844e33a5aSSean Rhodes pointer is accessed through the ACPI "GOOGCB00" object or the 4944e33a5aSSean Rhodes device tree node /firmware/coreboot. 5044e33a5aSSean Rhodes If unsure say N. 5144e33a5aSSean Rhodes 52*f2e05ce9SSean Rhodesconfig COREBOOT_CFR 53*f2e05ce9SSean Rhodes tristate "coreboot CFR firmware attributes" 54*f2e05ce9SSean Rhodes depends on EFI 55*f2e05ce9SSean Rhodes depends on COREBOOT_TABLE 56*f2e05ce9SSean Rhodes depends on HAS_IOPORT 57*f2e05ce9SSean Rhodes select CRC32 58*f2e05ce9SSean Rhodes select FW_ATTR_CLASS 59*f2e05ce9SSean Rhodes help 60*f2e05ce9SSean Rhodes This driver parses the coreboot CFR table and exposes runtime EFI 61*f2e05ce9SSean Rhodes variable-backed options through the firmware-attributes sysfs 62*f2e05ce9SSean Rhodes interface. 63*f2e05ce9SSean Rhodes 64*f2e05ce9SSean Rhodes If you have a system running coreboot with CFR runtime 65*f2e05ce9SSean Rhodes configuration support, say Y or M here. 66*f2e05ce9SSean Rhodes 6744e33a5aSSean Rhodesconfig COREBOOT_MEMCONSOLE_COMMON 6844e33a5aSSean Rhodes tristate 6944e33a5aSSean Rhodes depends on GOOGLE_MEMCONSOLE_X86_LEGACY || COREBOOT_MEMCONSOLE 7044e33a5aSSean Rhodes default GOOGLE_MEMCONSOLE 7144e33a5aSSean Rhodes 7244e33a5aSSean Rhodesconfig GOOGLE_MEMCONSOLE_X86_LEGACY 7344e33a5aSSean Rhodes tristate "Firmware Memory Console - X86 Legacy support" 7444e33a5aSSean Rhodes depends on X86 && ACPI && DMI 7544e33a5aSSean Rhodes select COREBOOT_MEMCONSOLE_COMMON 7644e33a5aSSean Rhodes help 7744e33a5aSSean Rhodes This option enables the kernel to search for a firmware log in 7844e33a5aSSean Rhodes the EBDA on Google servers. If found, this log is exported to 7944e33a5aSSean Rhodes userland in the file /sys/firmware/log. 8044e33a5aSSean Rhodes This driver is limited to x86 systems that expose the legacy 8144e33a5aSSean Rhodes Google EBDA console format. 8244e33a5aSSean Rhodes 8344e33a5aSSean Rhodesconfig COREBOOT_FRAMEBUFFER 8444e33a5aSSean Rhodes tristate "Coreboot Framebuffer" 8544e33a5aSSean Rhodes depends on COREBOOT_TABLE 8644e33a5aSSean Rhodes default GOOGLE_FRAMEBUFFER_COREBOOT 8744e33a5aSSean Rhodes help 8844e33a5aSSean Rhodes This option enables the kernel to search for a framebuffer in 8944e33a5aSSean Rhodes the coreboot table. If found, it is registered with a platform 9044e33a5aSSean Rhodes device of type coreboot-framebuffer. Using the old device of 9144e33a5aSSean Rhodes type simple-framebuffer is deprecated. 9244e33a5aSSean Rhodes 9344e33a5aSSean Rhodesconfig COREBOOT_MEMCONSOLE 9444e33a5aSSean Rhodes tristate "Firmware Memory Console" 9544e33a5aSSean Rhodes depends on COREBOOT_TABLE 9644e33a5aSSean Rhodes select COREBOOT_MEMCONSOLE_COMMON 9744e33a5aSSean Rhodes default GOOGLE_MEMCONSOLE_COREBOOT 9844e33a5aSSean Rhodes help 9944e33a5aSSean Rhodes This option enables the kernel to search for a firmware log in 10044e33a5aSSean Rhodes the coreboot table. If found, this log is exported to userland 10144e33a5aSSean Rhodes in the file /sys/firmware/log. 10244e33a5aSSean Rhodes This is the coreboot-table backed variant of the firmware memory 10344e33a5aSSean Rhodes console driver. 10444e33a5aSSean Rhodes 10544e33a5aSSean Rhodesconfig GOOGLE_VPD 10644e33a5aSSean Rhodes tristate "Vital Product Data" 10744e33a5aSSean Rhodes depends on COREBOOT_TABLE 10844e33a5aSSean Rhodes help 10944e33a5aSSean Rhodes This option enables the kernel to expose the content of Google VPD 11044e33a5aSSean Rhodes under /sys/firmware/vpd. 11144e33a5aSSean Rhodes VPD records carry firmware-provided key/value data used by 11244e33a5aSSean Rhodes Google devices. 11344e33a5aSSean Rhodes 11444e33a5aSSean Rhodesendif # COREBOOT_FIRMWARE 11544e33a5aSSean Rhodes 11644e33a5aSSean Rhodesconfig GOOGLE_FIRMWARE 11744e33a5aSSean Rhodes bool 11844e33a5aSSean Rhodes transitional 11944e33a5aSSean Rhodes 12044e33a5aSSean Rhodesconfig GOOGLE_CBMEM 12144e33a5aSSean Rhodes tristate 12244e33a5aSSean Rhodes transitional 12344e33a5aSSean Rhodes 12444e33a5aSSean Rhodesconfig GOOGLE_COREBOOT_TABLE 12544e33a5aSSean Rhodes tristate 12644e33a5aSSean Rhodes transitional 12744e33a5aSSean Rhodes 12844e33a5aSSean Rhodesconfig GOOGLE_MEMCONSOLE 12944e33a5aSSean Rhodes tristate 13044e33a5aSSean Rhodes transitional 13144e33a5aSSean Rhodes 13244e33a5aSSean Rhodesconfig GOOGLE_FRAMEBUFFER_COREBOOT 13344e33a5aSSean Rhodes tristate 13444e33a5aSSean Rhodes transitional 13544e33a5aSSean Rhodes 13644e33a5aSSean Rhodesconfig GOOGLE_MEMCONSOLE_COREBOOT 13744e33a5aSSean Rhodes tristate 13844e33a5aSSean Rhodes transitional 139