menuconfig GOOGLE_FIRMWARE
	bool "Google Firmware Drivers"
	default n
	help
	  These firmware drivers are used by Google's servers.  They are
	  only useful if you are working directly on one of their
	  proprietary servers.  If in doubt, say "N".

if GOOGLE_FIRMWARE

config GOOGLE_SMI
	tristate "SMI interface for Google platforms"
	depends on X86 && ACPI && DMI && EFI
	select EFI_VARS
	help
	  Say Y here if you want to enable SMI callbacks for Google
	  platforms.  This provides an interface for writing to and
	  clearing the EFI event log and reading and writing NVRAM
	  variables.

config GOOGLE_COREBOOT_TABLE
	tristate
	depends on GOOGLE_COREBOOT_TABLE_ACPI || GOOGLE_COREBOOT_TABLE_OF

config GOOGLE_COREBOOT_TABLE_ACPI
	tristate "Coreboot Table Access - ACPI"
	depends on ACPI
	select GOOGLE_COREBOOT_TABLE
	help
	  This option enables the coreboot_table module, which provides other
	  firmware modules to access to the coreboot table. The coreboot table
	  pointer is accessed through the ACPI "GOOGCB00" object.
	  If unsure say N.

config GOOGLE_COREBOOT_TABLE_OF
	tristate "Coreboot Table Access - Device Tree"
	depends on OF
	select GOOGLE_COREBOOT_TABLE
	help
	  This option enable the coreboot_table module, which provide other
	  firmware modules to access coreboot table. The coreboot table pointer
	  is accessed through the device tree node /firmware/coreboot.
	  If unsure say N.

config GOOGLE_MEMCONSOLE
	tristate
	depends on GOOGLE_MEMCONSOLE_X86_LEGACY || GOOGLE_MEMCONSOLE_COREBOOT

config GOOGLE_MEMCONSOLE_X86_LEGACY
	tristate "Firmware Memory Console - X86 Legacy support"
	depends on X86 && ACPI && DMI
	select GOOGLE_MEMCONSOLE
	help
	  This option enables the kernel to search for a firmware log in
	  the EBDA on Google servers.  If found, this log is exported to
	  userland in the file /sys/firmware/log.

config GOOGLE_FRAMEBUFFER_COREBOOT
	tristate "Coreboot Framebuffer"
	depends on FB_SIMPLE
	depends on GOOGLE_COREBOOT_TABLE
	help
	  This option enables the kernel to search for a framebuffer in
	  the coreboot table.  If found, it is registered with simplefb.

config GOOGLE_MEMCONSOLE_COREBOOT
	tristate "Firmware Memory Console"
	depends on GOOGLE_COREBOOT_TABLE
	select GOOGLE_MEMCONSOLE
	help
	  This option enables the kernel to search for a firmware log in
	  the coreboot table.  If found, this log is exported to userland
	  in the file /sys/firmware/log.

config GOOGLE_VPD
	tristate "Vital Product Data"
	depends on GOOGLE_COREBOOT_TABLE
	help
	  This option enables the kernel to expose the content of Google VPD
	  under /sys/firmware/vpd.

endif # GOOGLE_FIRMWARE
