mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-23 21:24:19 +00:00

SDEI usually initialize with the ACPI table, but on platforms where ACPI is not used, the SDEI feature can still be used to handle specific firmware calls or other customized purposes. Therefore, it is not necessary for ARM_SDE_INTERFACE to depend on ACPI_APEI_GHES. In commitdc4e8c07e9
("ACPI: APEI: explicit init of HEST and GHES in acpi_init()"), to make APEI ready earlier, sdei_init was moved into acpi_ghes_init instead of being a standalone initcall, adding ACPI_APEI_GHES dependency to ARM_SDE_INTERFACE. This restricts the flexibility and usability of SDEI. This patch corrects the dependency in Kconfig and splits sdei_init() into two separate functions: sdei_init() and acpi_sdei_init(). sdei_init() will be called by arch_initcall and will only initialize the platform driver, while acpi_sdei_init() will initialize the device from acpi_ghes_init() when ACPI is ready. This allows the initialization of SDEI without ACPI_APEI_GHES enabled. Fixes:dc4e8c07e9
("ACPI: APEI: explicit init of HEST and GHES in apci_init()") Cc: Shuai Xue <xueshuai@linux.alibaba.com> Signed-off-by: Huang Yiwei <quic_hyiwei@quicinc.com> Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com> Reviewed-by: Gavin Shan <gshan@redhat.com> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://lore.kernel.org/r/20250507045757.2658795-1-quic_hyiwei@quicinc.com Signed-off-by: Will Deacon <will@kernel.org>
85 lines
2.6 KiB
Plaintext
85 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
|
|
select ARM_SDE_INTERFACE if ARM64
|
|
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.
|