[HELP] AM5 + Ryzen Pro + ECC Memory -> NO ECC in ubuntu 24.04

Hello Everyone.

I own the following hardware which should fully support ECC:
Motherboard: Asrock Rack B650D4U-2L2TBCM

  • System Memory: Supported Type DDR5 288-pin ECC/non-ECC UDIMM
  • Memory QVL: DDR5 4800 ECC 32GB Samsung M324R4GA3BB0-CQK0L

Processor: AMD Ryzen 9 PRO 7945

  • ECC Support: Yes (Requires mobo support)

RAM: 4x DDR5 4800 ECC 32GB Samsung M324R4GA3BB0-CQK0L

I freshly installed Ubuntu 24.04 and apparently, I have no ECC enabled.

Any help is welcome!
Below are some commands showing the hardware detected.

$ sudo dmidecode -t memory

# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.5.0 present.

Handle 0x001C, DMI type 16, 23 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: None
        Maximum Capacity: 128 GB
        Error Information Handle: 0x001B
        Number Of Devices: 4

Handle 0x001F, DMI type 17, 92 bytes
Memory Device
        Array Handle: 0x001C
        Error Information Handle: 0x001E
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 32 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: P0 CHANNEL A
        Type: DDR5
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 4800 MT/s
        Manufacturer: Samsung
        Serial Number: 0576FB3C
        Asset Tag: Not Specified
        Part Number: M324R4GA3BB0-CQKOD
        Rank: 2
        Configured Memory Speed: 3600 MT/s
        Minimum Voltage: 1.1 V
        Maximum Voltage: 1.1 V
        Configured Voltage: 1.1 V
        Memory Technology: DRAM
        Memory Operating Mode Capability: Volatile memory
        Firmware Version: Unknown
        Module Manufacturer ID: Bank 1, Hex 0xCE
        Module Product ID: Unknown
        Memory Subsystem Controller Manufacturer ID: Unknown
        Memory Subsystem Controller Product ID: Unknown
        Non-Volatile Size: None
        Volatile Size: 32 GB
        Cache Size: None
        Logical Size: None

Handle 0x0022, DMI type 17, 92 bytes
Memory Device
        Array Handle: 0x001C
        Error Information Handle: 0x0021
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 32 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: P0 CHANNEL A
        Type: DDR5
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 4800 MT/s
        Manufacturer: Samsung
        Serial Number: 057705B9
        Asset Tag: Not Specified
        Part Number: M324R4GA3BB0-CQKOD
        Rank: 2
        Configured Memory Speed: 3600 MT/s
        Minimum Voltage: 1.1 V
        Maximum Voltage: 1.1 V
        Configured Voltage: 1.1 V
        Memory Technology: DRAM
        Memory Operating Mode Capability: Volatile memory
        Firmware Version: Unknown
        Module Manufacturer ID: Bank 1, Hex 0xCE
        Module Product ID: Unknown
        Memory Subsystem Controller Manufacturer ID: Unknown
        Memory Subsystem Controller Product ID: Unknown
        Non-Volatile Size: None
        Volatile Size: 32 GB
        Cache Size: None
        Logical Size: None

Handle 0x0025, DMI type 17, 92 bytes
Memory Device
        Array Handle: 0x001C
        Error Information Handle: 0x0024
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 32 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: P0 CHANNEL B
        Type: DDR5
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 4800 MT/s
        Manufacturer: Samsung
        Serial Number: 0576FF4A
        Asset Tag: Not Specified
        Part Number: M324R4GA3BB0-CQKOD
        Rank: 2
        Configured Memory Speed: 3600 MT/s
        Minimum Voltage: 1.1 V
        Maximum Voltage: 1.1 V
        Configured Voltage: 1.1 V
        Memory Technology: DRAM
        Memory Operating Mode Capability: Volatile memory
        Firmware Version: Unknown
        Module Manufacturer ID: Bank 1, Hex 0xCE
        Module Product ID: Unknown
        Memory Subsystem Controller Manufacturer ID: Unknown
        Memory Subsystem Controller Product ID: Unknown
        Non-Volatile Size: None
        Volatile Size: 32 GB
        Cache Size: None
        Logical Size: None

Handle 0x0028, DMI type 17, 92 bytes
Memory Device
        Array Handle: 0x001C
        Error Information Handle: 0x0027
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 32 GB
        Form Factor: DIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: P0 CHANNEL B
        Type: DDR5
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 4800 MT/s
        Manufacturer: Samsung
        Serial Number: 0576FB07
        Asset Tag: Not Specified
        Part Number: M324R4GA3BB0-CQKOD
        Rank: 2
        Configured Memory Speed: 3600 MT/s
        Minimum Voltage: 1.1 V
        Maximum Voltage: 1.1 V
        Configured Voltage: 1.1 V
        Memory Technology: DRAM
        Memory Operating Mode Capability: Volatile memory
        Firmware Version: Unknown
        Module Manufacturer ID: Bank 1, Hex 0xCE
        Module Product ID: Unknown
        Memory Subsystem Controller Manufacturer ID: Unknown
        Memory Subsystem Controller Product ID: Unknown
        Non-Volatile Size: None
        Volatile Size: 32 GB
        Cache Size: None
        Logical Size: None

$ sudo lshw -c memory

  *-firmware
       description: BIOS
       vendor: American Megatrends International, LLC.
       physical id: 0
       version: 4.09
       date: 10/02/2023
       size: 64KiB
       capacity: 32MiB
       capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer int10video acpi usb biosbootspecification uefi
  *-cache:0
       description: L1 cache
       physical id: 17
       slot: L1 - Cache
       size: 768KiB
       capacity: 768KiB
       clock: 1GHz (1.0ns)
       capabilities: pipeline-burst internal write-back unified
       configuration: level=1
  *-cache:1
       description: L2 cache
       physical id: 18
       slot: L2 - Cache
       size: 12MiB
       capacity: 12MiB
       clock: 1GHz (1.0ns)
       capabilities: pipeline-burst internal write-back unified
       configuration: level=2
  *-cache:2
       description: L3 cache
       physical id: 19
       slot: L3 - Cache
       size: 64MiB
       capacity: 64MiB
       clock: 1GHz (1.0ns)
       capabilities: pipeline-burst internal write-back unified
       configuration: level=3
  *-memory
       description: System Memory
       physical id: 1c
       slot: System board or motherboard
       size: 128GiB
     *-bank:0
          description: DIMM Synchronous Unbuffered (Unregistered) 4800 MHz (0.2 ns)
          product: M324R4GA3BB0-CQKOD
          vendor: Samsung
          physical id: 0
          serial: 0576FB3C
          slot: DIMM 0
          size: 32GiB
          width: 64 bits
          clock: 505MHz (2.0ns)
     *-bank:1
          description: DIMM Synchronous Unbuffered (Unregistered) 4800 MHz (0.2 ns)
          product: M324R4GA3BB0-CQKOD
          vendor: Samsung
          physical id: 1
          serial: 057705B9
          slot: DIMM 1
          size: 32GiB
          width: 64 bits
          clock: 505MHz (2.0ns)
     *-bank:2
          description: DIMM Synchronous Unbuffered (Unregistered) 4800 MHz (0.2 ns)
          product: M324R4GA3BB0-CQKOD
          vendor: Samsung
          physical id: 2
          serial: 0576FF4A
          slot: DIMM 0
          size: 32GiB
          width: 64 bits
          clock: 505MHz (2.0ns)
     *-bank:3
          description: DIMM Synchronous Unbuffered (Unregistered) 4800 MHz (0.2 ns)
          product: M324R4GA3BB0-CQKOD
          vendor: Samsung
          physical id: 3
          serial: 0576FB07
          slot: DIMM 1
          size: 32GiB
          width: 64 bits
          clock: 505MHz (2.0ns)

lscpu

Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          48 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   24
  On-line CPU(s) list:    0-23
Vendor ID:                AuthenticAMD
  Model name:             AMD Ryzen 9 PRO 7945 12-Core Processor
    CPU family:           25
    Model:                97
    Thread(s) per core:   2
    Core(s) per socket:   12
    Socket(s):            1
    Stepping:             2
    CPU(s) scaling MHz:   24%
    CPU max MHz:          5482.0000
    CPU min MHz:          400.0000
    BogoMIPS:             7399.33
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht sys
                          call nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl nonstop_tsc cpuid extd_a
                          picid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave a
                          vx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs sk
                          init wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd m
                          ba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a
                          avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt x
                          savec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irp
                          erf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid dec
                          odeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku
                           ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov
                           succor smca fsrm flush_l1d
Virtualization features:
  Virtualization:         AMD-V
Caches (sum of all):
  L1d:                    384 KiB (12 instances)
  L1i:                    384 KiB (12 instances)
  L2:                     12 MiB (12 instances)
  L3:                     64 MiB (2 instances)
NUMA:
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-23
Vulnerabilities:
  Gather data sampling:   Not affected
  Itlb multihit:          Not affected
  L1tf:                   Not affected
  Mds:                    Not affected
  Meltdown:               Not affected
  Mmio stale data:        Not affected
  Reg file data sampling: Not affected
  Retbleed:               Not affected
  Spec rstack overflow:   Vulnerable: Safe RET, no microcode
  Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:             Mitigation; Enhanced / Automatic IBRS; IBPB conditional; STIBP always-on; RSB filling; PBRSB-eIBRS Not a
                          ffected; BHI Not affected
  Srbds:                  Not affected
  Tsx async abort:        Not affected

I solved my issue :sweat_smile:

The option was hidden in the BIOS…
FYI I have enabled the following ones, that were set to β€œauto” by default…

Advanced β†’ AMD CBS β†’ UMC Common Options β†’ DDR options β†’ DDR RAS β†’ DDR ECC Configuration β†’ ECC β†’ Enabled
Advanced β†’ AMD CBS β†’ UMC Common Options β†’ DDR options β†’ DDR Security β†’ TSME β†’ Enabled
Advanced β†’ AMD CBS β†’ UMC Common Options β†’ DDR options β†’ DDR Security β†’ Data Scramble β†’ Enabled

Now
$ sudo dmidecode -t memory | grep -i ecc

        Error Correction Type: Multi-bit ECC
3 Likes