xref: /linux/drivers/firmware/google/Kconfig (revision 19d54020883c210a0cc78e5c735900ee9e9f64b3)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2f952a401SThierry Escandemenuconfig GOOGLE_FIRMWARE
3a1d9a09aSMike Waychison	bool "Google Firmware Drivers"
4a1d9a09aSMike Waychison	default n
5a1d9a09aSMike Waychison	help
6d185a346SBen Hutchings	  These firmware drivers are used by Google servers,
7d185a346SBen Hutchings	  Chromebooks and other devices using coreboot firmware.
8d185a346SBen Hutchings	  If in doubt, say "N".
9a1d9a09aSMike Waychison
10f952a401SThierry Escandeif GOOGLE_FIRMWARE
11a1d9a09aSMike Waychison
1274c5b31cSMike Waychisonconfig GOOGLE_SMI
1374c5b31cSMike Waychison	tristate "SMI interface for Google platforms"
14d31655baSDuncan Laurie	depends on X86 && ACPI && DMI
1574c5b31cSMike Waychison	help
1674c5b31cSMike Waychison	  Say Y here if you want to enable SMI callbacks for Google
1774c5b31cSMike Waychison	  platforms.  This provides an interface for writing to and
189846d860SArd Biesheuvel	  clearing the event log.  If CONFIG_EFI is also enabled this
19d31655baSDuncan Laurie	  driver provides an interface for reading and writing NVRAM
2074c5b31cSMike Waychison	  variables.
21e561bc45SMike Waychison
22*19d54020SJack Rosenthalconfig GOOGLE_CBMEM
23*19d54020SJack Rosenthal	tristate "CBMEM entries in sysfs"
24*19d54020SJack Rosenthal	depends on GOOGLE_COREBOOT_TABLE
25*19d54020SJack Rosenthal	help
26*19d54020SJack Rosenthal	  CBMEM is a downwards-growing memory region created by the
27*19d54020SJack Rosenthal	  Coreboot BIOS containing tagged data structures from the
28*19d54020SJack Rosenthal	  BIOS.  These data structures expose things like the verified
29*19d54020SJack Rosenthal	  boot firmware variables, flash layout, firmware event log,
30*19d54020SJack Rosenthal	  and more.
31*19d54020SJack Rosenthal
32*19d54020SJack Rosenthal	  This option enables the cbmem module, which causes the
33*19d54020SJack Rosenthal	  kernel to search for Coreboot CBMEM entries, and expose the
34*19d54020SJack Rosenthal	  memory for each entry in sysfs under
35*19d54020SJack Rosenthal	  /sys/bus/coreboot/devices/cbmem-<id>.
36*19d54020SJack Rosenthal
37d384d6f4SThierry Escandeconfig GOOGLE_COREBOOT_TABLE
38a28aad66SStephen Boyd	tristate "Coreboot Table Access"
3937fd8391SDavid Gow	depends on HAS_IOMEM && (ACPI || OF)
40d384d6f4SThierry Escande	help
41d384d6f4SThierry Escande	  This option enables the coreboot_table module, which provides other
42a28aad66SStephen Boyd	  firmware modules access to the coreboot table. The coreboot table
43a28aad66SStephen Boyd	  pointer is accessed through the ACPI "GOOGCB00" object or the
44a28aad66SStephen Boyd	  device tree node /firmware/coreboot.
45d384d6f4SThierry Escande	  If unsure say N.
46d384d6f4SThierry Escande
47a28aad66SStephen Boydconfig GOOGLE_COREBOOT_TABLE_ACPI
48a28aad66SStephen Boyd	tristate
49a1d6f9cfSThierry Escande	select GOOGLE_COREBOOT_TABLE
50a28aad66SStephen Boyd
51a28aad66SStephen Boydconfig GOOGLE_COREBOOT_TABLE_OF
52a28aad66SStephen Boyd	tristate
53a28aad66SStephen Boyd	select GOOGLE_COREBOOT_TABLE
54a1d6f9cfSThierry Escande
55e561bc45SMike Waychisonconfig GOOGLE_MEMCONSOLE
56afe9dba4SThierry Escande	tristate
57d384d6f4SThierry Escande	depends on GOOGLE_MEMCONSOLE_X86_LEGACY || GOOGLE_MEMCONSOLE_COREBOOT
58afe9dba4SThierry Escande
59afe9dba4SThierry Escandeconfig GOOGLE_MEMCONSOLE_X86_LEGACY
60afe9dba4SThierry Escande	tristate "Firmware Memory Console - X86 Legacy support"
61afe9dba4SThierry Escande	depends on X86 && ACPI && DMI
62afe9dba4SThierry Escande	select GOOGLE_MEMCONSOLE
63e561bc45SMike Waychison	help
64e561bc45SMike Waychison	  This option enables the kernel to search for a firmware log in
65e561bc45SMike Waychison	  the EBDA on Google servers.  If found, this log is exported to
66e561bc45SMike Waychison	  userland in the file /sys/firmware/log.
67a1d9a09aSMike Waychison
68851b4c14SSamuel Hollandconfig GOOGLE_FRAMEBUFFER_COREBOOT
69851b4c14SSamuel Holland	tristate "Coreboot Framebuffer"
70851b4c14SSamuel Holland	depends on FB_SIMPLE
71851b4c14SSamuel Holland	depends on GOOGLE_COREBOOT_TABLE
72851b4c14SSamuel Holland	help
73851b4c14SSamuel Holland	  This option enables the kernel to search for a framebuffer in
74851b4c14SSamuel Holland	  the coreboot table.  If found, it is registered with simplefb.
75851b4c14SSamuel Holland
76d384d6f4SThierry Escandeconfig GOOGLE_MEMCONSOLE_COREBOOT
77d384d6f4SThierry Escande	tristate "Firmware Memory Console"
78d384d6f4SThierry Escande	depends on GOOGLE_COREBOOT_TABLE
79d384d6f4SThierry Escande	select GOOGLE_MEMCONSOLE
80d384d6f4SThierry Escande	help
81d384d6f4SThierry Escande	  This option enables the kernel to search for a firmware log in
82d384d6f4SThierry Escande	  the coreboot table.  If found, this log is exported to userland
83d384d6f4SThierry Escande	  in the file /sys/firmware/log.
84d384d6f4SThierry Escande
85049a59dbSWei-Ning Huangconfig GOOGLE_VPD
86049a59dbSWei-Ning Huang	tristate "Vital Product Data"
87049a59dbSWei-Ning Huang	depends on GOOGLE_COREBOOT_TABLE
88049a59dbSWei-Ning Huang	help
89049a59dbSWei-Ning Huang	  This option enables the kernel to expose the content of Google VPD
90049a59dbSWei-Ning Huang	  under /sys/firmware/vpd.
91049a59dbSWei-Ning Huang
92f952a401SThierry Escandeendif # GOOGLE_FIRMWARE
93