# Copyright (c) 2020 Intel Corp.
# SPDX-License-Identifier: Apache-2.0
#
# EDAC configuration options

menuconfig EDAC
	bool "Error Detection and Correction (EDAC) Drivers"
	help
	  Enable Error Detection and Correction (EDAC) driver.

if EDAC

config EDAC_ERROR_INJECT
	bool "EDAC Error Injection mechanism"
	help
	  Enable Error injection capability for test error checking
	  and reporting. Should not be enabled in production system.

config EDAC_SHELL
	bool "EDAC Shell"
	depends on SHELL
	default y if SHELL
	help
	  Enable EDAC shell for debugging EDAC.

config EDAC_IBECC
	bool "In-Band ECC (IBECC)"
	depends on X86 && PCIE
	help
	  This option selects In-Band ECC (IBECC) IP support.

module = EDAC
module-str = edac
source "subsys/logging/Kconfig.template.log_config"

endif #EDAC
