# SPDX-License-Identifier: GPL-2.0-only
menuconfig RAS
	bool "Reliability, Availability and Serviceability (RAS) features"
	help
	  Reliability, availability and serviceability (RAS) is a computer
	  hardware engineering term. Computers designed with higher levels
	  of RAS have a multitude of features that protect data integrity
	  and help them stay available for long periods of time without
	  failure.

	  Reliability can be defined as the probability that the system will
	  produce correct outputs up to some given time. Reliability is
	  enhanced by features that help to avoid, detect and repair hardware
	  faults.

	  Availability is the probability a system is operational at a given
	  time, i.e. the amount of time a device is actually operating as the
	  percentage of total time it should be operating.

	  Serviceability or maintainability is the simplicity and speed with
	  which a system can be repaired or maintained; if the time to repair
	  a failed system increases, then availability will decrease.

	  Note that Reliability and Availability are distinct concepts:
	  Reliability is a measure of the ability of a system to function
	  correctly, including avoiding data corruption, whereas Availability
	  measures how often it is available for use, even though it may not
	  be functioning correctly. For example, a server may run forever and
	  so have ideal availability, but may be unreliable, with frequent
	  data corruption.

if RAS

source "arch/x86/ras/Kconfig"
source "drivers/ras/amd/atl/Kconfig"

config RAS_FMPM
	tristate "FRU Memory Poison Manager"
	default m
	depends on AMD_ATL && ACPI_APEI
	help
	  Support saving and restoring memory error information across reboot
	  using ACPI ERST as persistent storage. Error information is saved with
	  the UEFI CPER "FRU Memory Poison" section format.

	  Memory will be retired during boot time and run time depending on
	  platform-specific policies.

endif
