xref: /OK3568_Linux_fs/kernel/drivers/edac/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#
2*4882a593Smuzhiyun#	EDAC Kconfig
3*4882a593Smuzhiyun#	Copyright (c) 2008 Doug Thompson www.softwarebitmaker.com
4*4882a593Smuzhiyun#	Licensed and distributed under the GPL
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunconfig EDAC_ATOMIC_SCRUB
7*4882a593Smuzhiyun	bool
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunconfig EDAC_SUPPORT
10*4882a593Smuzhiyun	bool
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunmenuconfig EDAC
13*4882a593Smuzhiyun	tristate "EDAC (Error Detection And Correction) reporting"
14*4882a593Smuzhiyun	depends on HAS_IOMEM && EDAC_SUPPORT && RAS
15*4882a593Smuzhiyun	help
16*4882a593Smuzhiyun	  EDAC is a subsystem along with hardware-specific drivers designed to
17*4882a593Smuzhiyun	  report hardware errors. These are low-level errors that are reported
18*4882a593Smuzhiyun	  in the CPU or supporting chipset or other subsystems:
19*4882a593Smuzhiyun	  memory errors, cache errors, PCI errors, thermal throttling, etc..
20*4882a593Smuzhiyun	  If unsure, select 'Y'.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	  The mailing list for the EDAC project is linux-edac@vger.kernel.org.
23*4882a593Smuzhiyun
24*4882a593Smuzhiyunif EDAC
25*4882a593Smuzhiyun
26*4882a593Smuzhiyunconfig EDAC_LEGACY_SYSFS
27*4882a593Smuzhiyun	bool "EDAC legacy sysfs"
28*4882a593Smuzhiyun	default y
29*4882a593Smuzhiyun	help
30*4882a593Smuzhiyun	  Enable the compatibility sysfs nodes.
31*4882a593Smuzhiyun	  Use 'Y' if your edac utilities aren't ported to work with the newer
32*4882a593Smuzhiyun	  structures.
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunconfig EDAC_DEBUG
35*4882a593Smuzhiyun	bool "Debugging"
36*4882a593Smuzhiyun	select DEBUG_FS
37*4882a593Smuzhiyun	help
38*4882a593Smuzhiyun	  This turns on debugging information for the entire EDAC subsystem.
39*4882a593Smuzhiyun	  You do so by inserting edac_module with "edac_debug_level=x." Valid
40*4882a593Smuzhiyun	  levels are 0-4 (from low to high) and by default it is set to 2.
41*4882a593Smuzhiyun	  Usually you should select 'N' here.
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunconfig EDAC_DECODE_MCE
44*4882a593Smuzhiyun	tristate "Decode MCEs in human-readable form (only on AMD for now)"
45*4882a593Smuzhiyun	depends on CPU_SUP_AMD && X86_MCE_AMD
46*4882a593Smuzhiyun	default y
47*4882a593Smuzhiyun	help
48*4882a593Smuzhiyun	  Enable this option if you want to decode Machine Check Exceptions
49*4882a593Smuzhiyun	  occurring on your machine in human-readable form.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	  You should definitely say Y here in case you want to decode MCEs
52*4882a593Smuzhiyun	  which occur really early upon boot, before the module infrastructure
53*4882a593Smuzhiyun	  has been initialized.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig EDAC_GHES
56*4882a593Smuzhiyun	bool "Output ACPI APEI/GHES BIOS detected errors via EDAC"
57*4882a593Smuzhiyun	depends on ACPI_APEI_GHES && (EDAC=y)
58*4882a593Smuzhiyun	help
59*4882a593Smuzhiyun	  Not all machines support hardware-driven error report. Some of those
60*4882a593Smuzhiyun	  provide a BIOS-driven error report mechanism via ACPI, using the
61*4882a593Smuzhiyun	  APEI/GHES driver. By enabling this option, the error reports provided
62*4882a593Smuzhiyun	  by GHES are sent to userspace via the EDAC API.
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	  When this option is enabled, it will disable the hardware-driven
65*4882a593Smuzhiyun	  mechanisms, if a GHES BIOS is detected, entering into the
66*4882a593Smuzhiyun	  "Firmware First" mode.
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun	  It should be noticed that keeping both GHES and a hardware-driven
69*4882a593Smuzhiyun	  error mechanism won't work well, as BIOS will race with OS, while
70*4882a593Smuzhiyun	  reading the error registers. So, if you want to not use "Firmware
71*4882a593Smuzhiyun	  first" GHES error mechanism, you should disable GHES either at
72*4882a593Smuzhiyun	  compilation time or by passing "ghes.disable=1" Kernel parameter
73*4882a593Smuzhiyun	  at boot time.
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun	  In doubt, say 'Y'.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunconfig EDAC_AMD64
78*4882a593Smuzhiyun	tristate "AMD64 (Opteron, Athlon64)"
79*4882a593Smuzhiyun	depends on AMD_NB && EDAC_DECODE_MCE
80*4882a593Smuzhiyun	help
81*4882a593Smuzhiyun	  Support for error detection and correction of DRAM ECC errors on
82*4882a593Smuzhiyun	  the AMD64 families (>= K8) of memory controllers.
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunconfig EDAC_AMD64_ERROR_INJECTION
85*4882a593Smuzhiyun	bool "Sysfs HW Error injection facilities"
86*4882a593Smuzhiyun	depends on EDAC_AMD64
87*4882a593Smuzhiyun	help
88*4882a593Smuzhiyun	  Recent Opterons (Family 10h and later) provide for Memory Error
89*4882a593Smuzhiyun	  Injection into the ECC detection circuits. The amd64_edac module
90*4882a593Smuzhiyun	  allows the operator/user to inject Uncorrectable and Correctable
91*4882a593Smuzhiyun	  errors into DRAM.
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun	  When enabled, in each of the respective memory controller directories
94*4882a593Smuzhiyun	  (/sys/devices/system/edac/mc/mcX), there are 3 input files:
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	  - inject_section (0..3, 16-byte section of 64-byte cacheline),
97*4882a593Smuzhiyun	  - inject_word (0..8, 16-bit word of 16-byte section),
98*4882a593Smuzhiyun	  - inject_ecc_vector (hex ecc vector: select bits of inject word)
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun	  In addition, there are two control files, inject_read and inject_write,
101*4882a593Smuzhiyun	  which trigger the DRAM ECC Read and Write respectively.
102*4882a593Smuzhiyun
103*4882a593Smuzhiyunconfig EDAC_AL_MC
104*4882a593Smuzhiyun	tristate "Amazon's Annapurna Lab Memory Controller"
105*4882a593Smuzhiyun	depends on (ARCH_ALPINE || COMPILE_TEST)
106*4882a593Smuzhiyun	help
107*4882a593Smuzhiyun	  Support for error detection and correction for Amazon's Annapurna
108*4882a593Smuzhiyun	  Labs Alpine chips which allow 1 bit correction and 2 bits detection.
109*4882a593Smuzhiyun
110*4882a593Smuzhiyunconfig EDAC_AMD76X
111*4882a593Smuzhiyun	tristate "AMD 76x (760, 762, 768)"
112*4882a593Smuzhiyun	depends on PCI && X86_32
113*4882a593Smuzhiyun	help
114*4882a593Smuzhiyun	  Support for error detection and correction on the AMD 76x
115*4882a593Smuzhiyun	  series of chipsets used with the Athlon processor.
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunconfig EDAC_E7XXX
118*4882a593Smuzhiyun	tristate "Intel e7xxx (e7205, e7500, e7501, e7505)"
119*4882a593Smuzhiyun	depends on PCI && X86_32
120*4882a593Smuzhiyun	help
121*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
122*4882a593Smuzhiyun	  E7205, E7500, E7501 and E7505 server chipsets.
123*4882a593Smuzhiyun
124*4882a593Smuzhiyunconfig EDAC_E752X
125*4882a593Smuzhiyun	tristate "Intel e752x (e7520, e7525, e7320) and 3100"
126*4882a593Smuzhiyun	depends on PCI && X86
127*4882a593Smuzhiyun	help
128*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
129*4882a593Smuzhiyun	  E7520, E7525, E7320 server chipsets.
130*4882a593Smuzhiyun
131*4882a593Smuzhiyunconfig EDAC_I82443BXGX
132*4882a593Smuzhiyun	tristate "Intel 82443BX/GX (440BX/GX)"
133*4882a593Smuzhiyun	depends on PCI && X86_32
134*4882a593Smuzhiyun	depends on BROKEN
135*4882a593Smuzhiyun	help
136*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
137*4882a593Smuzhiyun	  82443BX/GX memory controllers (440BX/GX chipsets).
138*4882a593Smuzhiyun
139*4882a593Smuzhiyunconfig EDAC_I82875P
140*4882a593Smuzhiyun	tristate "Intel 82875p (D82875P, E7210)"
141*4882a593Smuzhiyun	depends on PCI && X86_32
142*4882a593Smuzhiyun	help
143*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
144*4882a593Smuzhiyun	  DP82785P and E7210 server chipsets.
145*4882a593Smuzhiyun
146*4882a593Smuzhiyunconfig EDAC_I82975X
147*4882a593Smuzhiyun	tristate "Intel 82975x (D82975x)"
148*4882a593Smuzhiyun	depends on PCI && X86
149*4882a593Smuzhiyun	help
150*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
151*4882a593Smuzhiyun	  DP82975x server chipsets.
152*4882a593Smuzhiyun
153*4882a593Smuzhiyunconfig EDAC_I3000
154*4882a593Smuzhiyun	tristate "Intel 3000/3010"
155*4882a593Smuzhiyun	depends on PCI && X86
156*4882a593Smuzhiyun	help
157*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
158*4882a593Smuzhiyun	  3000 and 3010 server chipsets.
159*4882a593Smuzhiyun
160*4882a593Smuzhiyunconfig EDAC_I3200
161*4882a593Smuzhiyun	tristate "Intel 3200"
162*4882a593Smuzhiyun	depends on PCI && X86
163*4882a593Smuzhiyun	help
164*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
165*4882a593Smuzhiyun	  3200 and 3210 server chipsets.
166*4882a593Smuzhiyun
167*4882a593Smuzhiyunconfig EDAC_IE31200
168*4882a593Smuzhiyun	tristate "Intel e312xx"
169*4882a593Smuzhiyun	depends on PCI && X86
170*4882a593Smuzhiyun	help
171*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
172*4882a593Smuzhiyun	  E3-1200 based DRAM controllers.
173*4882a593Smuzhiyun
174*4882a593Smuzhiyunconfig EDAC_X38
175*4882a593Smuzhiyun	tristate "Intel X38"
176*4882a593Smuzhiyun	depends on PCI && X86
177*4882a593Smuzhiyun	help
178*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
179*4882a593Smuzhiyun	  X38 server chipsets.
180*4882a593Smuzhiyun
181*4882a593Smuzhiyunconfig EDAC_I5400
182*4882a593Smuzhiyun	tristate "Intel 5400 (Seaburg) chipsets"
183*4882a593Smuzhiyun	depends on PCI && X86
184*4882a593Smuzhiyun	help
185*4882a593Smuzhiyun	  Support for error detection and correction the Intel
186*4882a593Smuzhiyun	  i5400 MCH chipset (Seaburg).
187*4882a593Smuzhiyun
188*4882a593Smuzhiyunconfig EDAC_I7CORE
189*4882a593Smuzhiyun	tristate "Intel i7 Core (Nehalem) processors"
190*4882a593Smuzhiyun	depends on PCI && X86 && X86_MCE_INTEL
191*4882a593Smuzhiyun	help
192*4882a593Smuzhiyun	  Support for error detection and correction the Intel
193*4882a593Smuzhiyun	  i7 Core (Nehalem) Integrated Memory Controller that exists on
194*4882a593Smuzhiyun	  newer processors like i7 Core, i7 Core Extreme, Xeon 35xx
195*4882a593Smuzhiyun	  and Xeon 55xx processors.
196*4882a593Smuzhiyun
197*4882a593Smuzhiyunconfig EDAC_I82860
198*4882a593Smuzhiyun	tristate "Intel 82860"
199*4882a593Smuzhiyun	depends on PCI && X86_32
200*4882a593Smuzhiyun	help
201*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
202*4882a593Smuzhiyun	  82860 chipset.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyunconfig EDAC_R82600
205*4882a593Smuzhiyun	tristate "Radisys 82600 embedded chipset"
206*4882a593Smuzhiyun	depends on PCI && X86_32
207*4882a593Smuzhiyun	help
208*4882a593Smuzhiyun	  Support for error detection and correction on the Radisys
209*4882a593Smuzhiyun	  82600 embedded chipset.
210*4882a593Smuzhiyun
211*4882a593Smuzhiyunconfig EDAC_I5000
212*4882a593Smuzhiyun	tristate "Intel Greencreek/Blackford chipset"
213*4882a593Smuzhiyun	depends on X86 && PCI
214*4882a593Smuzhiyun	help
215*4882a593Smuzhiyun	  Support for error detection and correction the Intel
216*4882a593Smuzhiyun	  Greekcreek/Blackford chipsets.
217*4882a593Smuzhiyun
218*4882a593Smuzhiyunconfig EDAC_I5100
219*4882a593Smuzhiyun	tristate "Intel San Clemente MCH"
220*4882a593Smuzhiyun	depends on X86 && PCI
221*4882a593Smuzhiyun	help
222*4882a593Smuzhiyun	  Support for error detection and correction the Intel
223*4882a593Smuzhiyun	  San Clemente MCH.
224*4882a593Smuzhiyun
225*4882a593Smuzhiyunconfig EDAC_I7300
226*4882a593Smuzhiyun	tristate "Intel Clarksboro MCH"
227*4882a593Smuzhiyun	depends on X86 && PCI
228*4882a593Smuzhiyun	help
229*4882a593Smuzhiyun	  Support for error detection and correction the Intel
230*4882a593Smuzhiyun	  Clarksboro MCH (Intel 7300 chipset).
231*4882a593Smuzhiyun
232*4882a593Smuzhiyunconfig EDAC_SBRIDGE
233*4882a593Smuzhiyun	tristate "Intel Sandy-Bridge/Ivy-Bridge/Haswell Integrated MC"
234*4882a593Smuzhiyun	depends on PCI && X86_64 && X86_MCE_INTEL && PCI_MMCONFIG
235*4882a593Smuzhiyun	help
236*4882a593Smuzhiyun	  Support for error detection and correction the Intel
237*4882a593Smuzhiyun	  Sandy Bridge, Ivy Bridge and Haswell Integrated Memory Controllers.
238*4882a593Smuzhiyun
239*4882a593Smuzhiyunconfig EDAC_SKX
240*4882a593Smuzhiyun	tristate "Intel Skylake server Integrated MC"
241*4882a593Smuzhiyun	depends on PCI && X86_64 && X86_MCE_INTEL && PCI_MMCONFIG && ACPI
242*4882a593Smuzhiyun	depends on ACPI_NFIT || !ACPI_NFIT # if ACPI_NFIT=m, EDAC_SKX can't be y
243*4882a593Smuzhiyun	select DMI
244*4882a593Smuzhiyun	select ACPI_ADXL
245*4882a593Smuzhiyun	help
246*4882a593Smuzhiyun	  Support for error detection and correction the Intel
247*4882a593Smuzhiyun	  Skylake server Integrated Memory Controllers. If your
248*4882a593Smuzhiyun	  system has non-volatile DIMMs you should also manually
249*4882a593Smuzhiyun	  select CONFIG_ACPI_NFIT.
250*4882a593Smuzhiyun
251*4882a593Smuzhiyunconfig EDAC_I10NM
252*4882a593Smuzhiyun	tristate "Intel 10nm server Integrated MC"
253*4882a593Smuzhiyun	depends on PCI && X86_64 && X86_MCE_INTEL && PCI_MMCONFIG && ACPI
254*4882a593Smuzhiyun	depends on ACPI_NFIT || !ACPI_NFIT # if ACPI_NFIT=m, EDAC_I10NM can't be y
255*4882a593Smuzhiyun	select DMI
256*4882a593Smuzhiyun	select ACPI_ADXL
257*4882a593Smuzhiyun	help
258*4882a593Smuzhiyun	  Support for error detection and correction the Intel
259*4882a593Smuzhiyun	  10nm server Integrated Memory Controllers. If your
260*4882a593Smuzhiyun	  system has non-volatile DIMMs you should also manually
261*4882a593Smuzhiyun	  select CONFIG_ACPI_NFIT.
262*4882a593Smuzhiyun
263*4882a593Smuzhiyunconfig EDAC_PND2
264*4882a593Smuzhiyun	tristate "Intel Pondicherry2"
265*4882a593Smuzhiyun	depends on PCI && X86_64 && X86_MCE_INTEL
266*4882a593Smuzhiyun	help
267*4882a593Smuzhiyun	  Support for error detection and correction on the Intel
268*4882a593Smuzhiyun	  Pondicherry2 Integrated Memory Controller. This SoC IP is
269*4882a593Smuzhiyun	  first used on the Apollo Lake platform and Denverton
270*4882a593Smuzhiyun	  micro-server but may appear on others in the future.
271*4882a593Smuzhiyun
272*4882a593Smuzhiyunconfig EDAC_MPC85XX
273*4882a593Smuzhiyun	bool "Freescale MPC83xx / MPC85xx"
274*4882a593Smuzhiyun	depends on FSL_SOC && EDAC=y
275*4882a593Smuzhiyun	help
276*4882a593Smuzhiyun	  Support for error detection and correction on the Freescale
277*4882a593Smuzhiyun	  MPC8349, MPC8560, MPC8540, MPC8548, T4240
278*4882a593Smuzhiyun
279*4882a593Smuzhiyunconfig EDAC_LAYERSCAPE
280*4882a593Smuzhiyun	tristate "Freescale Layerscape DDR"
281*4882a593Smuzhiyun	depends on ARCH_LAYERSCAPE || SOC_LS1021A
282*4882a593Smuzhiyun	help
283*4882a593Smuzhiyun	  Support for error detection and correction on Freescale memory
284*4882a593Smuzhiyun	  controllers on Layerscape SoCs.
285*4882a593Smuzhiyun
286*4882a593Smuzhiyunconfig EDAC_MV64X60
287*4882a593Smuzhiyun	tristate "Marvell MV64x60"
288*4882a593Smuzhiyun	depends on MV64X60
289*4882a593Smuzhiyun	help
290*4882a593Smuzhiyun	  Support for error detection and correction on the Marvell
291*4882a593Smuzhiyun	  MV64360 and MV64460 chipsets.
292*4882a593Smuzhiyun
293*4882a593Smuzhiyunconfig EDAC_PASEMI
294*4882a593Smuzhiyun	tristate "PA Semi PWRficient"
295*4882a593Smuzhiyun	depends on PPC_PASEMI && PCI
296*4882a593Smuzhiyun	help
297*4882a593Smuzhiyun	  Support for error detection and correction on PA Semi
298*4882a593Smuzhiyun	  PWRficient.
299*4882a593Smuzhiyun
300*4882a593Smuzhiyunconfig EDAC_CELL
301*4882a593Smuzhiyun	tristate "Cell Broadband Engine memory controller"
302*4882a593Smuzhiyun	depends on PPC_CELL_COMMON
303*4882a593Smuzhiyun	help
304*4882a593Smuzhiyun	  Support for error detection and correction on the
305*4882a593Smuzhiyun	  Cell Broadband Engine internal memory controller
306*4882a593Smuzhiyun	  on platform without a hypervisor
307*4882a593Smuzhiyun
308*4882a593Smuzhiyunconfig EDAC_PPC4XX
309*4882a593Smuzhiyun	tristate "PPC4xx IBM DDR2 Memory Controller"
310*4882a593Smuzhiyun	depends on 4xx
311*4882a593Smuzhiyun	help
312*4882a593Smuzhiyun	  This enables support for EDAC on the ECC memory used
313*4882a593Smuzhiyun	  with the IBM DDR2 memory controller found in various
314*4882a593Smuzhiyun	  PowerPC 4xx embedded processors such as the 405EX[r],
315*4882a593Smuzhiyun	  440SP, 440SPe, 460EX, 460GT and 460SX.
316*4882a593Smuzhiyun
317*4882a593Smuzhiyunconfig EDAC_AMD8131
318*4882a593Smuzhiyun	tristate "AMD8131 HyperTransport PCI-X Tunnel"
319*4882a593Smuzhiyun	depends on PCI && PPC_MAPLE
320*4882a593Smuzhiyun	help
321*4882a593Smuzhiyun	  Support for error detection and correction on the
322*4882a593Smuzhiyun	  AMD8131 HyperTransport PCI-X Tunnel chip.
323*4882a593Smuzhiyun	  Note, add more Kconfig dependency if it's adopted
324*4882a593Smuzhiyun	  on some machine other than Maple.
325*4882a593Smuzhiyun
326*4882a593Smuzhiyunconfig EDAC_AMD8111
327*4882a593Smuzhiyun	tristate "AMD8111 HyperTransport I/O Hub"
328*4882a593Smuzhiyun	depends on PCI && PPC_MAPLE
329*4882a593Smuzhiyun	help
330*4882a593Smuzhiyun	  Support for error detection and correction on the
331*4882a593Smuzhiyun	  AMD8111 HyperTransport I/O Hub chip.
332*4882a593Smuzhiyun	  Note, add more Kconfig dependency if it's adopted
333*4882a593Smuzhiyun	  on some machine other than Maple.
334*4882a593Smuzhiyun
335*4882a593Smuzhiyunconfig EDAC_CPC925
336*4882a593Smuzhiyun	tristate "IBM CPC925 Memory Controller (PPC970FX)"
337*4882a593Smuzhiyun	depends on PPC64
338*4882a593Smuzhiyun	help
339*4882a593Smuzhiyun	  Support for error detection and correction on the
340*4882a593Smuzhiyun	  IBM CPC925 Bridge and Memory Controller, which is
341*4882a593Smuzhiyun	  a companion chip to the PowerPC 970 family of
342*4882a593Smuzhiyun	  processors.
343*4882a593Smuzhiyun
344*4882a593Smuzhiyunconfig EDAC_HIGHBANK_MC
345*4882a593Smuzhiyun	tristate "Highbank Memory Controller"
346*4882a593Smuzhiyun	depends on ARCH_HIGHBANK
347*4882a593Smuzhiyun	help
348*4882a593Smuzhiyun	  Support for error detection and correction on the
349*4882a593Smuzhiyun	  Calxeda Highbank memory controller.
350*4882a593Smuzhiyun
351*4882a593Smuzhiyunconfig EDAC_HIGHBANK_L2
352*4882a593Smuzhiyun	tristate "Highbank L2 Cache"
353*4882a593Smuzhiyun	depends on ARCH_HIGHBANK
354*4882a593Smuzhiyun	help
355*4882a593Smuzhiyun	  Support for error detection and correction on the
356*4882a593Smuzhiyun	  Calxeda Highbank memory controller.
357*4882a593Smuzhiyun
358*4882a593Smuzhiyunconfig EDAC_OCTEON_PC
359*4882a593Smuzhiyun	tristate "Cavium Octeon Primary Caches"
360*4882a593Smuzhiyun	depends on CPU_CAVIUM_OCTEON
361*4882a593Smuzhiyun	help
362*4882a593Smuzhiyun	  Support for error detection and correction on the primary caches of
363*4882a593Smuzhiyun	  the cnMIPS cores of Cavium Octeon family SOCs.
364*4882a593Smuzhiyun
365*4882a593Smuzhiyunconfig EDAC_OCTEON_L2C
366*4882a593Smuzhiyun	tristate "Cavium Octeon Secondary Caches (L2C)"
367*4882a593Smuzhiyun	depends on CAVIUM_OCTEON_SOC
368*4882a593Smuzhiyun	help
369*4882a593Smuzhiyun	  Support for error detection and correction on the
370*4882a593Smuzhiyun	  Cavium Octeon family of SOCs.
371*4882a593Smuzhiyun
372*4882a593Smuzhiyunconfig EDAC_OCTEON_LMC
373*4882a593Smuzhiyun	tristate "Cavium Octeon DRAM Memory Controller (LMC)"
374*4882a593Smuzhiyun	depends on CAVIUM_OCTEON_SOC
375*4882a593Smuzhiyun	help
376*4882a593Smuzhiyun	  Support for error detection and correction on the
377*4882a593Smuzhiyun	  Cavium Octeon family of SOCs.
378*4882a593Smuzhiyun
379*4882a593Smuzhiyunconfig EDAC_OCTEON_PCI
380*4882a593Smuzhiyun	tristate "Cavium Octeon PCI Controller"
381*4882a593Smuzhiyun	depends on PCI && CAVIUM_OCTEON_SOC
382*4882a593Smuzhiyun	help
383*4882a593Smuzhiyun	  Support for error detection and correction on the
384*4882a593Smuzhiyun	  Cavium Octeon family of SOCs.
385*4882a593Smuzhiyun
386*4882a593Smuzhiyunconfig EDAC_THUNDERX
387*4882a593Smuzhiyun	tristate "Cavium ThunderX EDAC"
388*4882a593Smuzhiyun	depends on ARM64
389*4882a593Smuzhiyun	depends on PCI
390*4882a593Smuzhiyun	help
391*4882a593Smuzhiyun	  Support for error detection and correction on the
392*4882a593Smuzhiyun	  Cavium ThunderX memory controllers (LMC), Cache
393*4882a593Smuzhiyun	  Coherent Processor Interconnect (CCPI) and L2 cache
394*4882a593Smuzhiyun	  blocks (TAD, CBC, MCI).
395*4882a593Smuzhiyun
396*4882a593Smuzhiyunconfig EDAC_ALTERA
397*4882a593Smuzhiyun	bool "Altera SOCFPGA ECC"
398*4882a593Smuzhiyun	depends on EDAC=y && (ARCH_SOCFPGA || ARCH_STRATIX10)
399*4882a593Smuzhiyun	help
400*4882a593Smuzhiyun	  Support for error detection and correction on the
401*4882a593Smuzhiyun	  Altera SOCs. This is the global enable for the
402*4882a593Smuzhiyun	  various Altera peripherals.
403*4882a593Smuzhiyun
404*4882a593Smuzhiyunconfig EDAC_ALTERA_SDRAM
405*4882a593Smuzhiyun	bool "Altera SDRAM ECC"
406*4882a593Smuzhiyun	depends on EDAC_ALTERA=y
407*4882a593Smuzhiyun	help
408*4882a593Smuzhiyun	  Support for error detection and correction on the
409*4882a593Smuzhiyun	  Altera SDRAM Memory for Altera SoCs. Note that the
410*4882a593Smuzhiyun	  preloader must initialize the SDRAM before loading
411*4882a593Smuzhiyun	  the kernel.
412*4882a593Smuzhiyun
413*4882a593Smuzhiyunconfig EDAC_ALTERA_L2C
414*4882a593Smuzhiyun	bool "Altera L2 Cache ECC"
415*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && CACHE_L2X0
416*4882a593Smuzhiyun	help
417*4882a593Smuzhiyun	  Support for error detection and correction on the
418*4882a593Smuzhiyun	  Altera L2 cache Memory for Altera SoCs. This option
419*4882a593Smuzhiyun	  requires L2 cache.
420*4882a593Smuzhiyun
421*4882a593Smuzhiyunconfig EDAC_ALTERA_OCRAM
422*4882a593Smuzhiyun	bool "Altera On-Chip RAM ECC"
423*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && SRAM && GENERIC_ALLOCATOR
424*4882a593Smuzhiyun	help
425*4882a593Smuzhiyun	  Support for error detection and correction on the
426*4882a593Smuzhiyun	  Altera On-Chip RAM Memory for Altera SoCs.
427*4882a593Smuzhiyun
428*4882a593Smuzhiyunconfig EDAC_ALTERA_ETHERNET
429*4882a593Smuzhiyun	bool "Altera Ethernet FIFO ECC"
430*4882a593Smuzhiyun	depends on EDAC_ALTERA=y
431*4882a593Smuzhiyun	help
432*4882a593Smuzhiyun	  Support for error detection and correction on the
433*4882a593Smuzhiyun	  Altera Ethernet FIFO Memory for Altera SoCs.
434*4882a593Smuzhiyun
435*4882a593Smuzhiyunconfig EDAC_ALTERA_NAND
436*4882a593Smuzhiyun	bool "Altera NAND FIFO ECC"
437*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && MTD_NAND_DENALI
438*4882a593Smuzhiyun	help
439*4882a593Smuzhiyun	  Support for error detection and correction on the
440*4882a593Smuzhiyun	  Altera NAND FIFO Memory for Altera SoCs.
441*4882a593Smuzhiyun
442*4882a593Smuzhiyunconfig EDAC_ALTERA_DMA
443*4882a593Smuzhiyun	bool "Altera DMA FIFO ECC"
444*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && PL330_DMA=y
445*4882a593Smuzhiyun	help
446*4882a593Smuzhiyun	  Support for error detection and correction on the
447*4882a593Smuzhiyun	  Altera DMA FIFO Memory for Altera SoCs.
448*4882a593Smuzhiyun
449*4882a593Smuzhiyunconfig EDAC_ALTERA_USB
450*4882a593Smuzhiyun	bool "Altera USB FIFO ECC"
451*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && USB_DWC2
452*4882a593Smuzhiyun	help
453*4882a593Smuzhiyun	  Support for error detection and correction on the
454*4882a593Smuzhiyun	  Altera USB FIFO Memory for Altera SoCs.
455*4882a593Smuzhiyun
456*4882a593Smuzhiyunconfig EDAC_ALTERA_QSPI
457*4882a593Smuzhiyun	bool "Altera QSPI FIFO ECC"
458*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && SPI_CADENCE_QUADSPI
459*4882a593Smuzhiyun	help
460*4882a593Smuzhiyun	  Support for error detection and correction on the
461*4882a593Smuzhiyun	  Altera QSPI FIFO Memory for Altera SoCs.
462*4882a593Smuzhiyun
463*4882a593Smuzhiyunconfig EDAC_ALTERA_SDMMC
464*4882a593Smuzhiyun	bool "Altera SDMMC FIFO ECC"
465*4882a593Smuzhiyun	depends on EDAC_ALTERA=y && MMC_DW
466*4882a593Smuzhiyun	help
467*4882a593Smuzhiyun	  Support for error detection and correction on the
468*4882a593Smuzhiyun	  Altera SDMMC FIFO Memory for Altera SoCs.
469*4882a593Smuzhiyun
470*4882a593Smuzhiyunconfig EDAC_SIFIVE
471*4882a593Smuzhiyun	bool "Sifive platform EDAC driver"
472*4882a593Smuzhiyun	depends on EDAC=y && SIFIVE_L2
473*4882a593Smuzhiyun	help
474*4882a593Smuzhiyun	  Support for error detection and correction on the SiFive SoCs.
475*4882a593Smuzhiyun
476*4882a593Smuzhiyunconfig EDAC_ARMADA_XP
477*4882a593Smuzhiyun	bool "Marvell Armada XP DDR and L2 Cache ECC"
478*4882a593Smuzhiyun	depends on MACH_MVEBU_V7
479*4882a593Smuzhiyun	help
480*4882a593Smuzhiyun	  Support for error correction and detection on the Marvell Aramada XP
481*4882a593Smuzhiyun	  DDR RAM and L2 cache controllers.
482*4882a593Smuzhiyun
483*4882a593Smuzhiyunconfig EDAC_SYNOPSYS
484*4882a593Smuzhiyun	tristate "Synopsys DDR Memory Controller"
485*4882a593Smuzhiyun	depends on ARCH_ZYNQ || ARCH_ZYNQMP
486*4882a593Smuzhiyun	help
487*4882a593Smuzhiyun	  Support for error detection and correction on the Synopsys DDR
488*4882a593Smuzhiyun	  memory controller.
489*4882a593Smuzhiyun
490*4882a593Smuzhiyunconfig EDAC_XGENE
491*4882a593Smuzhiyun	tristate "APM X-Gene SoC"
492*4882a593Smuzhiyun	depends on (ARM64 || COMPILE_TEST)
493*4882a593Smuzhiyun	help
494*4882a593Smuzhiyun	  Support for error detection and correction on the
495*4882a593Smuzhiyun	  APM X-Gene family of SOCs.
496*4882a593Smuzhiyun
497*4882a593Smuzhiyunconfig EDAC_TI
498*4882a593Smuzhiyun	tristate "Texas Instruments DDR3 ECC Controller"
499*4882a593Smuzhiyun	depends on ARCH_KEYSTONE || SOC_DRA7XX
500*4882a593Smuzhiyun	help
501*4882a593Smuzhiyun	  Support for error detection and correction on the TI SoCs.
502*4882a593Smuzhiyun
503*4882a593Smuzhiyunconfig EDAC_QCOM
504*4882a593Smuzhiyun	tristate "QCOM EDAC Controller"
505*4882a593Smuzhiyun	depends on ARCH_QCOM && QCOM_LLCC
506*4882a593Smuzhiyun	help
507*4882a593Smuzhiyun	  Support for error detection and correction on the
508*4882a593Smuzhiyun	  Qualcomm Technologies, Inc. SoCs.
509*4882a593Smuzhiyun
510*4882a593Smuzhiyun	  This driver reports Single Bit Errors (SBEs) and Double Bit Errors (DBEs).
511*4882a593Smuzhiyun	  As of now, it supports error reporting for Last Level Cache Controller (LLCC)
512*4882a593Smuzhiyun	  of Tag RAM and Data RAM.
513*4882a593Smuzhiyun
514*4882a593Smuzhiyun	  For debugging issues having to do with stability and overall system
515*4882a593Smuzhiyun	  health, you should probably say 'Y' here.
516*4882a593Smuzhiyun
517*4882a593Smuzhiyunconfig EDAC_ASPEED
518*4882a593Smuzhiyun	tristate "Aspeed AST 2500 SoC"
519*4882a593Smuzhiyun	depends on MACH_ASPEED_G5
520*4882a593Smuzhiyun	help
521*4882a593Smuzhiyun	  Support for error detection and correction on the Aspeed AST 2500 SoC.
522*4882a593Smuzhiyun
523*4882a593Smuzhiyun	  First, ECC must be configured in the bootloader. Then, this driver
524*4882a593Smuzhiyun	  will expose error counters via the EDAC kernel framework.
525*4882a593Smuzhiyun
526*4882a593Smuzhiyunconfig EDAC_BLUEFIELD
527*4882a593Smuzhiyun	tristate "Mellanox BlueField Memory ECC"
528*4882a593Smuzhiyun	depends on ARM64 && ((MELLANOX_PLATFORM && ACPI) || COMPILE_TEST)
529*4882a593Smuzhiyun	help
530*4882a593Smuzhiyun	  Support for error detection and correction on the
531*4882a593Smuzhiyun	  Mellanox BlueField SoCs.
532*4882a593Smuzhiyun
533*4882a593Smuzhiyunconfig EDAC_DMC520
534*4882a593Smuzhiyun	tristate "ARM DMC-520 ECC"
535*4882a593Smuzhiyun	depends on ARM64
536*4882a593Smuzhiyun	help
537*4882a593Smuzhiyun	  Support for error detection and correction on the
538*4882a593Smuzhiyun	  SoCs with ARM DMC-520 DRAM controller.
539*4882a593Smuzhiyun
540*4882a593Smuzhiyunendif # EDAC
541