Kconfig 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. #
  2. # EDAC Kconfig
  3. # Copyright (c) 2008 Doug Thompson www.softwarebitmaker.com
  4. # Licensed and distributed under the GPL
  5. config EDAC_ATOMIC_SCRUB
  6. bool
  7. config EDAC_SUPPORT
  8. bool
  9. menuconfig EDAC
  10. bool "EDAC (Error Detection And Correction) reporting"
  11. depends on HAS_IOMEM && EDAC_SUPPORT
  12. help
  13. EDAC is designed to report errors in the core system.
  14. These are low-level errors that are reported in the CPU or
  15. supporting chipset or other subsystems:
  16. memory errors, cache errors, PCI errors, thermal throttling, etc..
  17. If unsure, select 'Y'.
  18. If this code is reporting problems on your system, please
  19. see the EDAC project web pages for more information at:
  20. <http://bluesmoke.sourceforge.net/>
  21. and:
  22. <http://buttersideup.com/edacwiki>
  23. There is also a mailing list for the EDAC project, which can
  24. be found via the sourceforge page.
  25. if EDAC
  26. config EDAC_LEGACY_SYSFS
  27. bool "EDAC legacy sysfs"
  28. default y
  29. help
  30. Enable the compatibility sysfs nodes.
  31. Use 'Y' if your edac utilities aren't ported to work with the newer
  32. structures.
  33. config EDAC_DEBUG
  34. bool "Debugging"
  35. select DEBUG_FS
  36. help
  37. This turns on debugging information for the entire EDAC subsystem.
  38. You do so by inserting edac_module with "edac_debug_level=x." Valid
  39. levels are 0-4 (from low to high) and by default it is set to 2.
  40. Usually you should select 'N' here.
  41. config EDAC_DECODE_MCE
  42. tristate "Decode MCEs in human-readable form (only on AMD for now)"
  43. depends on CPU_SUP_AMD && X86_MCE_AMD
  44. default y
  45. ---help---
  46. Enable this option if you want to decode Machine Check Exceptions
  47. occurring on your machine in human-readable form.
  48. You should definitely say Y here in case you want to decode MCEs
  49. which occur really early upon boot, before the module infrastructure
  50. has been initialized.
  51. config EDAC_MM_EDAC
  52. tristate "Main Memory EDAC (Error Detection And Correction) reporting"
  53. select RAS
  54. help
  55. Some systems are able to detect and correct errors in main
  56. memory. EDAC can report statistics on memory error
  57. detection and correction (EDAC - or commonly referred to ECC
  58. errors). EDAC will also try to decode where these errors
  59. occurred so that a particular failing memory module can be
  60. replaced. If unsure, select 'Y'.
  61. config EDAC_GHES
  62. bool "Output ACPI APEI/GHES BIOS detected errors via EDAC"
  63. depends on ACPI_APEI_GHES && (EDAC_MM_EDAC=y)
  64. default y
  65. help
  66. Not all machines support hardware-driven error report. Some of those
  67. provide a BIOS-driven error report mechanism via ACPI, using the
  68. APEI/GHES driver. By enabling this option, the error reports provided
  69. by GHES are sent to userspace via the EDAC API.
  70. When this option is enabled, it will disable the hardware-driven
  71. mechanisms, if a GHES BIOS is detected, entering into the
  72. "Firmware First" mode.
  73. It should be noticed that keeping both GHES and a hardware-driven
  74. error mechanism won't work well, as BIOS will race with OS, while
  75. reading the error registers. So, if you want to not use "Firmware
  76. first" GHES error mechanism, you should disable GHES either at
  77. compilation time or by passing "ghes.disable=1" Kernel parameter
  78. at boot time.
  79. In doubt, say 'Y'.
  80. config EDAC_AMD64
  81. tristate "AMD64 (Opteron, Athlon64)"
  82. depends on EDAC_MM_EDAC && AMD_NB && EDAC_DECODE_MCE
  83. help
  84. Support for error detection and correction of DRAM ECC errors on
  85. the AMD64 families (>= K8) of memory controllers.
  86. config EDAC_AMD64_ERROR_INJECTION
  87. bool "Sysfs HW Error injection facilities"
  88. depends on EDAC_AMD64
  89. help
  90. Recent Opterons (Family 10h and later) provide for Memory Error
  91. Injection into the ECC detection circuits. The amd64_edac module
  92. allows the operator/user to inject Uncorrectable and Correctable
  93. errors into DRAM.
  94. When enabled, in each of the respective memory controller directories
  95. (/sys/devices/system/edac/mc/mcX), there are 3 input files:
  96. - inject_section (0..3, 16-byte section of 64-byte cacheline),
  97. - inject_word (0..8, 16-bit word of 16-byte section),
  98. - inject_ecc_vector (hex ecc vector: select bits of inject word)
  99. In addition, there are two control files, inject_read and inject_write,
  100. which trigger the DRAM ECC Read and Write respectively.
  101. config EDAC_AMD76X
  102. tristate "AMD 76x (760, 762, 768)"
  103. depends on EDAC_MM_EDAC && PCI && X86_32
  104. help
  105. Support for error detection and correction on the AMD 76x
  106. series of chipsets used with the Athlon processor.
  107. config EDAC_E7XXX
  108. tristate "Intel e7xxx (e7205, e7500, e7501, e7505)"
  109. depends on EDAC_MM_EDAC && PCI && X86_32
  110. help
  111. Support for error detection and correction on the Intel
  112. E7205, E7500, E7501 and E7505 server chipsets.
  113. config EDAC_E752X
  114. tristate "Intel e752x (e7520, e7525, e7320) and 3100"
  115. depends on EDAC_MM_EDAC && PCI && X86
  116. help
  117. Support for error detection and correction on the Intel
  118. E7520, E7525, E7320 server chipsets.
  119. config EDAC_I82443BXGX
  120. tristate "Intel 82443BX/GX (440BX/GX)"
  121. depends on EDAC_MM_EDAC && PCI && X86_32
  122. depends on BROKEN
  123. help
  124. Support for error detection and correction on the Intel
  125. 82443BX/GX memory controllers (440BX/GX chipsets).
  126. config EDAC_I82875P
  127. tristate "Intel 82875p (D82875P, E7210)"
  128. depends on EDAC_MM_EDAC && PCI && X86_32
  129. help
  130. Support for error detection and correction on the Intel
  131. DP82785P and E7210 server chipsets.
  132. config EDAC_I82975X
  133. tristate "Intel 82975x (D82975x)"
  134. depends on EDAC_MM_EDAC && PCI && X86
  135. help
  136. Support for error detection and correction on the Intel
  137. DP82975x server chipsets.
  138. config EDAC_I3000
  139. tristate "Intel 3000/3010"
  140. depends on EDAC_MM_EDAC && PCI && X86
  141. help
  142. Support for error detection and correction on the Intel
  143. 3000 and 3010 server chipsets.
  144. config EDAC_I3200
  145. tristate "Intel 3200"
  146. depends on EDAC_MM_EDAC && PCI && X86
  147. help
  148. Support for error detection and correction on the Intel
  149. 3200 and 3210 server chipsets.
  150. config EDAC_IE31200
  151. tristate "Intel e312xx"
  152. depends on EDAC_MM_EDAC && PCI && X86
  153. help
  154. Support for error detection and correction on the Intel
  155. E3-1200 based DRAM controllers.
  156. config EDAC_X38
  157. tristate "Intel X38"
  158. depends on EDAC_MM_EDAC && PCI && X86
  159. help
  160. Support for error detection and correction on the Intel
  161. X38 server chipsets.
  162. config EDAC_I5400
  163. tristate "Intel 5400 (Seaburg) chipsets"
  164. depends on EDAC_MM_EDAC && PCI && X86
  165. help
  166. Support for error detection and correction the Intel
  167. i5400 MCH chipset (Seaburg).
  168. config EDAC_I7CORE
  169. tristate "Intel i7 Core (Nehalem) processors"
  170. depends on EDAC_MM_EDAC && PCI && X86 && X86_MCE_INTEL
  171. help
  172. Support for error detection and correction the Intel
  173. i7 Core (Nehalem) Integrated Memory Controller that exists on
  174. newer processors like i7 Core, i7 Core Extreme, Xeon 35xx
  175. and Xeon 55xx processors.
  176. config EDAC_I82860
  177. tristate "Intel 82860"
  178. depends on EDAC_MM_EDAC && PCI && X86_32
  179. help
  180. Support for error detection and correction on the Intel
  181. 82860 chipset.
  182. config EDAC_R82600
  183. tristate "Radisys 82600 embedded chipset"
  184. depends on EDAC_MM_EDAC && PCI && X86_32
  185. help
  186. Support for error detection and correction on the Radisys
  187. 82600 embedded chipset.
  188. config EDAC_I5000
  189. tristate "Intel Greencreek/Blackford chipset"
  190. depends on EDAC_MM_EDAC && X86 && PCI
  191. help
  192. Support for error detection and correction the Intel
  193. Greekcreek/Blackford chipsets.
  194. config EDAC_I5100
  195. tristate "Intel San Clemente MCH"
  196. depends on EDAC_MM_EDAC && X86 && PCI
  197. help
  198. Support for error detection and correction the Intel
  199. San Clemente MCH.
  200. config EDAC_I7300
  201. tristate "Intel Clarksboro MCH"
  202. depends on EDAC_MM_EDAC && X86 && PCI
  203. help
  204. Support for error detection and correction the Intel
  205. Clarksboro MCH (Intel 7300 chipset).
  206. config EDAC_SBRIDGE
  207. tristate "Intel Sandy-Bridge/Ivy-Bridge/Haswell Integrated MC"
  208. depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL
  209. depends on PCI_MMCONFIG
  210. help
  211. Support for error detection and correction the Intel
  212. Sandy Bridge, Ivy Bridge and Haswell Integrated Memory Controllers.
  213. config EDAC_SKX
  214. tristate "Intel Skylake server Integrated MC"
  215. depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL
  216. depends on PCI_MMCONFIG
  217. help
  218. Support for error detection and correction the Intel
  219. Skylake server Integrated Memory Controllers.
  220. config EDAC_PND2
  221. tristate "Intel Pondicherry2"
  222. depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL
  223. help
  224. Support for error detection and correction on the Intel
  225. Pondicherry2 Integrated Memory Controller. This SoC IP is
  226. first used on the Apollo Lake platform and Denverton
  227. micro-server but may appear on others in the future.
  228. config EDAC_MPC85XX
  229. tristate "Freescale MPC83xx / MPC85xx"
  230. depends on EDAC_MM_EDAC && FSL_SOC
  231. help
  232. Support for error detection and correction on the Freescale
  233. MPC8349, MPC8560, MPC8540, MPC8548, T4240
  234. config EDAC_LAYERSCAPE
  235. tristate "Freescale Layerscape DDR"
  236. depends on EDAC_MM_EDAC && ARCH_LAYERSCAPE
  237. help
  238. Support for error detection and correction on Freescale memory
  239. controllers on Layerscape SoCs.
  240. config EDAC_MV64X60
  241. tristate "Marvell MV64x60"
  242. depends on EDAC_MM_EDAC && MV64X60
  243. help
  244. Support for error detection and correction on the Marvell
  245. MV64360 and MV64460 chipsets.
  246. config EDAC_PASEMI
  247. tristate "PA Semi PWRficient"
  248. depends on EDAC_MM_EDAC && PCI
  249. depends on PPC_PASEMI
  250. help
  251. Support for error detection and correction on PA Semi
  252. PWRficient.
  253. config EDAC_CELL
  254. tristate "Cell Broadband Engine memory controller"
  255. depends on EDAC_MM_EDAC && PPC_CELL_COMMON
  256. help
  257. Support for error detection and correction on the
  258. Cell Broadband Engine internal memory controller
  259. on platform without a hypervisor
  260. config EDAC_PPC4XX
  261. tristate "PPC4xx IBM DDR2 Memory Controller"
  262. depends on EDAC_MM_EDAC && 4xx
  263. help
  264. This enables support for EDAC on the ECC memory used
  265. with the IBM DDR2 memory controller found in various
  266. PowerPC 4xx embedded processors such as the 405EX[r],
  267. 440SP, 440SPe, 460EX, 460GT and 460SX.
  268. config EDAC_AMD8131
  269. tristate "AMD8131 HyperTransport PCI-X Tunnel"
  270. depends on EDAC_MM_EDAC && PCI && PPC_MAPLE
  271. help
  272. Support for error detection and correction on the
  273. AMD8131 HyperTransport PCI-X Tunnel chip.
  274. Note, add more Kconfig dependency if it's adopted
  275. on some machine other than Maple.
  276. config EDAC_AMD8111
  277. tristate "AMD8111 HyperTransport I/O Hub"
  278. depends on EDAC_MM_EDAC && PCI && PPC_MAPLE
  279. help
  280. Support for error detection and correction on the
  281. AMD8111 HyperTransport I/O Hub chip.
  282. Note, add more Kconfig dependency if it's adopted
  283. on some machine other than Maple.
  284. config EDAC_CPC925
  285. tristate "IBM CPC925 Memory Controller (PPC970FX)"
  286. depends on EDAC_MM_EDAC && PPC64
  287. help
  288. Support for error detection and correction on the
  289. IBM CPC925 Bridge and Memory Controller, which is
  290. a companion chip to the PowerPC 970 family of
  291. processors.
  292. config EDAC_TILE
  293. tristate "Tilera Memory Controller"
  294. depends on EDAC_MM_EDAC && TILE
  295. default y
  296. help
  297. Support for error detection and correction on the
  298. Tilera memory controller.
  299. config EDAC_HIGHBANK_MC
  300. tristate "Highbank Memory Controller"
  301. depends on EDAC_MM_EDAC && ARCH_HIGHBANK
  302. help
  303. Support for error detection and correction on the
  304. Calxeda Highbank memory controller.
  305. config EDAC_HIGHBANK_L2
  306. tristate "Highbank L2 Cache"
  307. depends on EDAC_MM_EDAC && ARCH_HIGHBANK
  308. help
  309. Support for error detection and correction on the
  310. Calxeda Highbank memory controller.
  311. config EDAC_OCTEON_PC
  312. tristate "Cavium Octeon Primary Caches"
  313. depends on EDAC_MM_EDAC && CPU_CAVIUM_OCTEON
  314. help
  315. Support for error detection and correction on the primary caches of
  316. the cnMIPS cores of Cavium Octeon family SOCs.
  317. config EDAC_OCTEON_L2C
  318. tristate "Cavium Octeon Secondary Caches (L2C)"
  319. depends on EDAC_MM_EDAC && CAVIUM_OCTEON_SOC
  320. help
  321. Support for error detection and correction on the
  322. Cavium Octeon family of SOCs.
  323. config EDAC_OCTEON_LMC
  324. tristate "Cavium Octeon DRAM Memory Controller (LMC)"
  325. depends on EDAC_MM_EDAC && CAVIUM_OCTEON_SOC
  326. help
  327. Support for error detection and correction on the
  328. Cavium Octeon family of SOCs.
  329. config EDAC_OCTEON_PCI
  330. tristate "Cavium Octeon PCI Controller"
  331. depends on EDAC_MM_EDAC && PCI && CAVIUM_OCTEON_SOC
  332. help
  333. Support for error detection and correction on the
  334. Cavium Octeon family of SOCs.
  335. config EDAC_ALTERA
  336. bool "Altera SOCFPGA ECC"
  337. depends on EDAC_MM_EDAC=y && ARCH_SOCFPGA
  338. help
  339. Support for error detection and correction on the
  340. Altera SOCs. This must be selected for SDRAM ECC.
  341. Note that the preloader must initialize the SDRAM
  342. before loading the kernel.
  343. config EDAC_ALTERA_L2C
  344. bool "Altera L2 Cache ECC"
  345. depends on EDAC_ALTERA=y && CACHE_L2X0
  346. help
  347. Support for error detection and correction on the
  348. Altera L2 cache Memory for Altera SoCs. This option
  349. requires L2 cache.
  350. config EDAC_ALTERA_OCRAM
  351. bool "Altera On-Chip RAM ECC"
  352. depends on EDAC_ALTERA=y && SRAM && GENERIC_ALLOCATOR
  353. help
  354. Support for error detection and correction on the
  355. Altera On-Chip RAM Memory for Altera SoCs.
  356. config EDAC_ALTERA_ETHERNET
  357. bool "Altera Ethernet FIFO ECC"
  358. depends on EDAC_ALTERA=y
  359. help
  360. Support for error detection and correction on the
  361. Altera Ethernet FIFO Memory for Altera SoCs.
  362. config EDAC_ALTERA_NAND
  363. bool "Altera NAND FIFO ECC"
  364. depends on EDAC_ALTERA=y && MTD_NAND_DENALI
  365. help
  366. Support for error detection and correction on the
  367. Altera NAND FIFO Memory for Altera SoCs.
  368. config EDAC_ALTERA_DMA
  369. bool "Altera DMA FIFO ECC"
  370. depends on EDAC_ALTERA=y && PL330_DMA=y
  371. help
  372. Support for error detection and correction on the
  373. Altera DMA FIFO Memory for Altera SoCs.
  374. config EDAC_ALTERA_USB
  375. bool "Altera USB FIFO ECC"
  376. depends on EDAC_ALTERA=y && USB_DWC2
  377. help
  378. Support for error detection and correction on the
  379. Altera USB FIFO Memory for Altera SoCs.
  380. config EDAC_ALTERA_QSPI
  381. bool "Altera QSPI FIFO ECC"
  382. depends on EDAC_ALTERA=y && SPI_CADENCE_QUADSPI
  383. help
  384. Support for error detection and correction on the
  385. Altera QSPI FIFO Memory for Altera SoCs.
  386. config EDAC_ALTERA_SDMMC
  387. bool "Altera SDMMC FIFO ECC"
  388. depends on EDAC_ALTERA=y && MMC_DW
  389. help
  390. Support for error detection and correction on the
  391. Altera SDMMC FIFO Memory for Altera SoCs.
  392. config EDAC_SYNOPSYS
  393. tristate "Synopsys DDR Memory Controller"
  394. depends on EDAC_MM_EDAC && ARCH_ZYNQ
  395. help
  396. Support for error detection and correction on the Synopsys DDR
  397. memory controller.
  398. config EDAC_XGENE
  399. tristate "APM X-Gene SoC"
  400. depends on EDAC_MM_EDAC && (ARM64 || COMPILE_TEST)
  401. help
  402. Support for error detection and correction on the
  403. APM X-Gene family of SOCs.
  404. endif # EDAC