2014-07-22 17:20:12 +08:00
|
|
|
config HAVE_ACPI_APEI
|
|
|
|
bool
|
|
|
|
|
|
|
|
config HAVE_ACPI_APEI_NMI
|
|
|
|
bool
|
|
|
|
|
2010-05-18 14:35:12 +08:00
|
|
|
config ACPI_APEI
|
|
|
|
bool "ACPI Platform Error Interface (APEI)"
|
2011-04-14 01:48:12 +08:00
|
|
|
select MISC_FILESYSTEMS
|
2011-01-04 06:22:11 +08:00
|
|
|
select PSTORE
|
2013-10-29 05:06:55 +08:00
|
|
|
select UEFI_CPER
|
2014-07-22 17:20:12 +08:00
|
|
|
depends on HAVE_ACPI_APEI
|
2010-05-18 14:35:12 +08:00
|
|
|
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.
|
2010-05-18 14:35:14 +08:00
|
|
|
|
ACPI, APEI, Generic Hardware Error Source memory error support
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.
Now, only SCI notification type and memory errors are supported. More
notification type and hardware error type will be added later. These
memory errors are reported to user space through /dev/mcelog via
faking a corrected Machine Check, so that the error memory page can be
offlined by /sbin/mcelog if the error count for one page is beyond the
threshold.
On some machines, Machine Check can not report physical address for
some corrected memory errors, but GHES can do that. So this simplified
GHES is implemented firstly.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-05-18 14:35:20 +08:00
|
|
|
config ACPI_APEI_GHES
|
2011-07-13 13:14:18 +08:00
|
|
|
bool "APEI Generic Hardware Error Source"
|
2014-02-11 00:23:36 +08:00
|
|
|
depends on ACPI_APEI
|
ACPI, APEI, Generic Hardware Error Source memory error support
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.
Now, only SCI notification type and memory errors are supported. More
notification type and hardware error type will be added later. These
memory errors are reported to user space through /dev/mcelog via
faking a corrected Machine Check, so that the error memory page can be
offlined by /sbin/mcelog if the error count for one page is beyond the
threshold.
On some machines, Machine Check can not report physical address for
some corrected memory errors, but GHES can do that. So this simplified
GHES is implemented firstly.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-05-18 14:35:20 +08:00
|
|
|
select ACPI_HED
|
2011-08-10 10:46:22 +08:00
|
|
|
select IRQ_WORK
|
ACPI, APEI, GHES, printk support for recoverable error via NMI
Some APEI GHES recoverable errors are reported via NMI, but printk is
not safe in NMI context.
To solve the issue, a lock-less memory allocator is used to allocate
memory in NMI handler, save the error record into the allocated
memory, put the error record into a lock-less list. On the other
hand, an irq_work is used to delay the operation from NMI context to
IRQ context. The irq_work IRQ handler will remove nodes from
lock-less list, printk the error record and do some further processing
include recovery operation, then free the memory.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2011-07-13 13:14:25 +08:00
|
|
|
select GENERIC_ALLOCATOR
|
ACPI, APEI, Generic Hardware Error Source memory error support
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.
Now, only SCI notification type and memory errors are supported. More
notification type and hardware error type will be added later. These
memory errors are reported to user space through /dev/mcelog via
faking a corrected Machine Check, so that the error memory page can be
offlined by /sbin/mcelog if the error count for one page is beyond the
threshold.
On some machines, Machine Check can not report physical address for
some corrected memory errors, but GHES can do that. So this simplified
GHES is implemented firstly.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-05-18 14:35:20 +08:00
|
|
|
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.
|
|
|
|
|
2011-02-21 13:54:43 +08:00
|
|
|
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.
|
|
|
|
|
2017-06-22 02:17:09 +08:00
|
|
|
config ACPI_APEI_SEA
|
|
|
|
bool "APEI Synchronous External Abort logging/recovering support"
|
|
|
|
depends on ARM64 && ACPI_APEI_GHES
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This option should be enabled if the system supports
|
|
|
|
firmware first handling of SEA (Synchronous External Abort).
|
|
|
|
SEA happens with certain faults of data abort or instruction
|
|
|
|
abort synchronous exceptions on ARMv8 systems. If a system
|
|
|
|
supports firmware first handling of SEA, the platform analyzes
|
|
|
|
and handles hardware error notifications from SEA, and it may then
|
|
|
|
form a HW error record for the OS to parse and handle. This
|
|
|
|
option allows the OS to look for such hardware error record, and
|
|
|
|
take appropriate action.
|
|
|
|
|
2011-07-13 13:14:28 +08:00
|
|
|
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.
|
|
|
|
|
2010-05-18 14:35:14 +08:00
|
|
|
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.
|
2010-08-12 11:55:17 +08:00
|
|
|
|
|
|
|
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
|
2010-09-08 00:49:45 +08:00
|
|
|
error information to and from a persistent store. Enable this
|
2010-08-12 11:55:17 +08:00
|
|
|
if you want to debugging and testing the ERST kernel support
|
|
|
|
and firmware implementation.
|