12fb28ea6b
Move CXL protocol error types from einj.c (now einj-core.c) to einj-cxl.c. einj-cxl.c implements the necessary handling for CXL protocol error injection and exposes an API for the CXL core to use said functionality, while also allowing the EINJ module to be built without CXL support. Because CXL error types targeting CXL 1.0/1.1 ports require special handling, only allow them to be injected through the new cxl debugfs interface (next commit) and return an error when attempting to inject through the legacy interface. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Ben Cheatham <Benjamin.Cheatham@amd.com> Link: https://lore.kernel.org/r/20240311142508.31717-3-Benjamin.Cheatham@amd.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
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
|
|
depends on ARM64 && ACPI_APEI_GHES
|
|
default y
|
|
|
|
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_EINJ_CXL
|
|
bool "CXL Error INJection Support"
|
|
default ACPI_APEI_EINJ
|
|
depends on ACPI_APEI_EINJ
|
|
depends on CXL_BUS && CXL_BUS <= ACPI_APEI_EINJ
|
|
help
|
|
Support for CXL protocol Error INJection through debugfs/cxl.
|
|
Availability and which errors are supported is dependent on
|
|
the host platform. Look to ACPI v6.5 section 18.6.4 and kernel
|
|
EINJ documentation for more information.
|
|
|
|
If unsure say 'n'
|
|
|
|
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.
|