config ACPI_APEI
	bool "ACPI Platform Error Interface (APEI)"
	select MISC_FILESYSTEMS
	select PSTORE
	select UEFI_CPER
	depends on X86
	help
	  APEI allows to report errors (for example from the chipset)
	  to the operating system. This improves NMI handling
	  especially. In addition it supports error serialization and
	  error injection.

config ACPI_APEI_GHES
	bool "APEI Generic Hardware Error Source"
	depends on ACPI_APEI
	select ACPI_HED
	select IRQ_WORK
	select GENERIC_ALLOCATOR
	help
	  Generic Hardware Error Source provides a way to report
	  platform hardware errors (such as that from chipset). It
	  works in so called "Firmware First" mode, that is, hardware
	  errors are reported to firmware firstly, then reported to
	  Linux by firmware. This way, some non-standard hardware
	  error registers or non-standard hardware link can be checked
	  by firmware to produce more valuable hardware error
	  information for Linux.

config ACPI_APEI_PCIEAER
	bool "APEI PCIe AER logging/recovering support"
	depends on ACPI_APEI && PCIEAER
	help
	  PCIe AER errors may be reported via APEI firmware first mode.
	  Turn on this option to enable the corresponding support.

config ACPI_APEI_MEMORY_FAILURE
	bool "APEI memory error recovering support"
	depends on ACPI_APEI && MEMORY_FAILURE
	help
	  Memory errors may be reported via APEI firmware first mode.
	  Turn on this option to enable the memory recovering support.

config ACPI_APEI_EINJ
	tristate "APEI Error INJection (EINJ)"
	depends on ACPI_APEI && DEBUG_FS
	help
	  EINJ provides a hardware error injection mechanism, it is
	  mainly used for debugging and testing the other parts of
	  APEI and some other RAS features.

config ACPI_APEI_ERST_DEBUG
	tristate "APEI Error Record Serialization Table (ERST) Debug Support"
	depends on ACPI_APEI
	help
	  ERST is a way provided by APEI to save and retrieve hardware
	  error information to and from a persistent store. Enable this
	  if you want to debugging and testing the ERST kernel support
	  and firmware implementation.
