Description [1]:
> Userspace helper for kernel EDAC drivers (Error Detection and
> Correction)
README [2]:
> EDAC (Error Detection and Correction) is a set of Linux kernel modules
> that handle reporting of hardware-related errors. Currently these
> modules mainly handle detection of ECC memory errors for many x86 and
> x86-64 chipsets and PCI bus parity errors.
>
> The edac-utils project currently has three components: libedac,
> edac-util, and edac-ctl. The libedac library presents a standard API
> for reading EDAC error counts and other information from sysfs, and
> edac-util uses this API to generate standard reports from the
> commandline. The edac-ctl utility is a perl script which uses config
> files to load the appropriate EDAC driver for a given chipset and
> register motherboard DIMM labels if they are configured. An init
> script is also provided which uses edac-ctl to initialize EDAC at
> system startup.
```
pmenzel@rofl:~> lspci -nn -s 0:18.2
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller [1022:1202]
pmenzel@rofl:~> dmesg | grep -i edac
[ 0.491844] EDAC MC: Ver: 3.0.0
[ 2.612648] AMD64 EDAC driver v3.4.0
[ 2.615980] EDAC amd64: DRAM ECC enabled.
[ 2.619301] EDAC amd64: F10h detected (node 0).
[ 2.622555] EDAC MC: DCT0 chip selects:
[ 2.622556] EDAC amd64: MC: 0: 2048MB 1: 2048MB
[ 2.625799] EDAC amd64: MC: 2: 2048MB 3: 2048MB
[ 2.628966] EDAC amd64: MC: 4: 2048MB 5: 2048MB
[ 2.632103] EDAC amd64: MC: 6: 2048MB 7: 2048MB
[ 2.635204] EDAC MC: DCT1 chip selects:
[ 2.635205] EDAC amd64: MC: 0: 2048MB 1: 2048MB
[ 2.638225] EDAC amd64: MC: 2: 2048MB 3: 2048MB
[ 2.641248] EDAC amd64: MC: 4: 2048MB 5: 2048MB
[ 2.644186] EDAC amd64: MC: 6: 2048MB 7: 2048MB
[ 2.647033] EDAC amd64: using x8 syndromes.
[ 2.649872] EDAC amd64: MCT channel count: 2
[ 2.653182] EDAC MC0: Giving out device to module amd64_edac controller F10h: DEV 0000:00:18.2 (INTERRUPT)
[ 2.656156] EDAC amd64: DRAM ECC enabled.
[ 2.659151] EDAC amd64: F10h detected (node 1).
[ 2.662099] EDAC MC: DCT0 chip selects:
[ 2.662101] EDAC amd64: MC: 0: 2048MB 1: 2048MB
[ 2.665027] EDAC amd64: MC: 2: 2048MB 3: 2048MB
[ 2.667925] EDAC amd64: MC: 4: 2048MB 5: 2048MB
[ 2.670778] EDAC amd64: MC: 6: 2048MB 7: 2048MB
[ 2.673560] EDAC MC: DCT1 chip selects:
[ 2.673562] EDAC amd64: MC: 0: 2048MB 1: 2048MB
[ 2.676284] EDAC amd64: MC: 2: 2048MB 3: 2048MB
[ 2.678945] EDAC amd64: MC: 4: 2048MB 5: 2048MB
[ 2.681579] EDAC amd64: MC: 6: 2048MB 7: 2048MB
[ 2.684144] EDAC amd64: using x8 syndromes.
[ 2.686686] EDAC amd64: MCT channel count: 2
[ 2.689611] EDAC MC1: Giving out device to module amd64_edac controller F10h: DEV 0000:00:19.2 (INTERRUPT)
[ 2.692381] EDAC PCI0: Giving out device to module amd64_edac controller EDAC PCI controller: DEV 0000:00:18.2 (POLLED)
pmenzel@rofl:~> uname -a # Six-Core AMD Opteron(tm) Processor 2439 SE
Linux rofl.molgen.mpg.de 4.4.14.mx64.90 #1 SMP Mon Jun 27 17:52:58 CEST 2016 x86_64 GNU/Linux
pmenzel@rofl:~> sudo edac-util --status --verbose
edac-util: EDAC drivers are loaded. 2 MCs detected:
mc0:F10h
mc1:F10h
pmenzel@rofl:~> sudo edac-util
edac-util: No errors to report.
```
```
pmenzel@keineahnung:~> uname -a
Linux heulsuse.molgen.mpg.de 4.8.0-rc2.mx64.95 #1 SMP Mon Aug 15 17:49:16 CEST 2016 x86_64 GNU/Linux
pmenzel@heulsuse:~> lspci -nn -s 0:0.0 # unsupported
00:00.0 Host bridge [0600]: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 [8086:2f00] (rev 02)
pmenzel@heulsuse:~> dmesg | grep -i edac
[ 5.650704] EDAC MC: Ver: 3.0.0
pmenzel@heulsuse:~> sudo edac-util --status --verbose
edac-util: EDAC drivers loaded. No memory controllers found
pmenzel@heulsuse:~> sudo edac-util
edac-util: Error: No memory controller data found.
```
[1] https://github.com/grondo/edac-utils/releases
[2] https://github.com/grondo/edac-utils/blob/master/README