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