xref: /linux/drivers/firmware/coreboot/Kconfig (revision 9e947d96915af63e28896caae85a81b74855621b)
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