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_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
