Looks like we were on the right track. This is from the current Fedora Rawhide live environment
[liveuser@localhost-live ~]$ dmesg | grep 'edac\|EDAC\|Linux version'
[ 0.000000] Linux version 5.4.0-0.rc6.git2.1.fc32.x86_64 ([email protected]) (gcc version 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)) #1 SMP Thu Nov 7 16:31:36 UTC 2019
[ 0.351252] EDAC MC: Ver: 3.0.0
[ 21.617120] EDAC amd64: Node 0: DRAM ECC enabled.
[ 21.617123] EDAC amd64: F17h_M70h detected (node 0).
[ 21.617193] EDAC MC: UMC0 chip selects:
[ 21.617195] EDAC amd64: MC: 0: 0MB 1: 0MB
[ 21.617197] EDAC amd64: MC: 2: 8192MB 3: 8192MB
[ 21.617201] EDAC MC: UMC1 chip selects:
[ 21.617202] EDAC amd64: MC: 0: 0MB 1: 0MB
[ 21.617204] EDAC amd64: MC: 2: 8192MB 3: 8192MB
[ 21.617205] EDAC amd64: using x16 syndromes.
[ 21.617206] EDAC amd64: MCT channel count: 2
[ 21.617575] EDAC MC0: Giving out device to module amd64_edac controller F17h_M70h: DEV 0000:00:18.3 (INTERRUPT)
[ 21.617689] EDAC PCI0: Giving out device to module amd64_edac controller EDAC PCI controller: DEV 0000:00:18.0 (POLLED)
[ 21.617695] AMD64 EDAC driver v3.5.0
[liveuser@localhost-live ~]$ sudo lshw -c memory | grep ecc
capabilities: ecc
configuration: errordetection=multi-bit-ecc
[liveuser@localhost-live ~]$ sudo dmidecode -t memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.
# SMBIOS implementations newer than version 3.2.0 are not
# fully supported by this version of dmidecode.
Handle 0x000E, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Maximum Capacity: 128 GB
Error Information Handle: 0x000D
Number Of Devices: 4
Handle 0x0016, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x000E
Error Information Handle: 0x0015
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: Unknown
Set: None
Locator: DIMM 0
Bank Locator: P0 CHANNEL A
Type: Unknown
Type Detail: Unknown
Speed: Unknown
Manufacturer: Unknown
Serial Number: Unknown
Asset Tag: Not Specified
Part Number: Unknown
Rank: Unknown
Configured Memory Speed: Unknown
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
Handle 0x0018, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x000E
Error Information Handle: 0x0017
Total Width: 128 bits
Data Width: 64 bits
Size: 16384 MB
Form Factor: DIMM
Set: None
Locator: DIMM 1
Bank Locator: P0 CHANNEL A
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 3334 MT/s
Manufacturer: Samsung
Serial Number: [serial]
Asset Tag: Not Specified
Part Number: M391A2K43BB1-CRC
Rank: 2
Configured Memory Speed: 3334 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Handle 0x001B, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x000E
Error Information Handle: 0x001A
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: Unknown
Set: None
Locator: DIMM 0
Bank Locator: P0 CHANNEL B
Type: Unknown
Type Detail: Unknown
Speed: Unknown
Manufacturer: Unknown
Serial Number: Unknown
Asset Tag: Not Specified
Part Number: Unknown
Rank: Unknown
Configured Memory Speed: Unknown
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
Handle 0x001D, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x000E
Error Information Handle: 0x001C
Total Width: 128 bits
Data Width: 64 bits
Size: 16384 MB
Form Factor: DIMM
Set: None
Locator: DIMM 1
Bank Locator: P0 CHANNEL B
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 3334 MT/s
Manufacturer: Samsung
Serial Number: [serial]
Asset Tag: Not Specified
Part Number: M391A2K43BB1-CRC
Rank: 2
Configured Memory Speed: 3334 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Hopefully the formal release of 5.4 (and the uptake by various distributions) isn’t too far away. Now if only AMD hadn’t gimped the ability to intentionally corrupt memory, I might actually know if it was working properly.