mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
![Tyler Baicar](/assets/img/avatar_default.png)
ARM APEI extension proposal added SEA (Synchronous External Abort) notification type for ARMv8. Add a new GHES error source handling function for SEA. If an error source's notification type is SEA, then this function can be registered into the SEA exception handler. That way GHES will parse and report SEA exceptions when they occur. An SEA can interrupt code that had interrupts masked and is treated as an NMI. To aid this the page of address space for mapping APEI buffers while in_nmi() is always reserved, and ghes_ioremap_pfn_nmi() is changed to use the helper methods to find the prot_t to map with in the same way as ghes_ioremap_pfn_irq(). Signed-off-by: Tyler Baicar <tbaicar@codeaurora.org> CC: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org> Reviewed-by: James Morse <james.morse@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
79 lines
2.7 KiB
Text
79 lines
2.7 KiB
Text
config HAVE_ACPI_APEI
|
|
bool
|
|
|
|
config HAVE_ACPI_APEI_NMI
|
|
bool
|
|
|
|
config ACPI_APEI
|
|
bool "ACPI Platform Error Interface (APEI)"
|
|
select MISC_FILESYSTEMS
|
|
select PSTORE
|
|
select UEFI_CPER
|
|
depends on HAVE_ACPI_APEI
|
|
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_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.
|
|
|
|
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.
|