[RESPONDED] AMD Ryzen™ 7040 decode-dimms: no ddr5 modules found

Hi All,
This isn’t a framework issue, but a Linux device/kernel module one. decode-dimms shows no useful information, just a bunch of invalid, undefined, and uknowns. I’ve tried modprobe [eeproms ee1004 at24] in various combinations, and suspect that ee1004 needs to include ddr5 and doesn’t. The machine works fine, and lshw, hwinfo, etc. all work.
Have any of you got this working properly?

Thanks, ms

I’m sure you’ve checked to make sure you’re using compatible RAM as you’ve already booted up successfully. (Putting this in here for everyone else reading this as it’s important)

In your case, I’m not entirely sure what info you’r looking for, but it sounds like you’re looking for detection on the Type.

I’m also not sure which distro you’re using as I don’t believe decode-dimms works reliably on all distros.

Like Type: DDR5 specifically.

For this, I’d use:

sudo dmidecode --type memory | grep Type:

or

sudo dmidecode --type memory | grep -E "Size:|Type:|Number Of Devices:"

or for more verbose

sudo dmidecode --type memory

Hi, thanks for the reply.
I’m using Manjaro Linux, kernel 6.6, and it’s running great, ddr-5, 5600 Mt/s, All the tests you mentioned (other than decode-dimms) work fine.

lshw shows 1305Mhz.
I’m trying to find the CAS latency, which doesn’t show up in the other utilities.

The system is FAST–I have no complaints or problems. Just want to see the CAS for entertainment purposes.

decode-dimms on other Manjaro boxes w/ddr4 ram shows all the stats.

dmi-decode --type memory shows (in part):

Memory Device
Array Handle: 0x0011
Error Information Handle: 0x0015
Total Width: 64 bits
Data Width: 64 bits
Size: 32 GB
Form Factor: SODIMM
Set: None
Locator: DIMM 0
Bank Locator: P0 CHANNEL A
Type: DDR5
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 5600 MT/s
Manufacturer: Unknown
Serial Number: 345EADFF
Asset Tag: Not Specified
Part Number: F5-5600S4040A32G
Rank: 2
Configured Memory Speed: 5600 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 5, Hex 0xCD
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

Not all modules populate their eeprom with SPD information. The 2x32GB Framework Supplied modules i.e don’t

On Fedora 39 ;

dnf install i2c-tools-perl
sudo modprobe eEprom
sudo decode-dimms
[root@emiemi ~]# decode-dimms

decode-dimms version 4.3

Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0050
Guessing DIMM is in bank 1
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0051
Guessing DIMM is in bank 2
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0052
Guessing DIMM is in bank 3
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0053
Guessing DIMM is in bank 4
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0054
Guessing DIMM is in bank 5
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0055
Guessing DIMM is in bank 6
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0056
Guessing DIMM is in bank 7
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/22-0057
Guessing DIMM is in bank 8
Kernel driver used eeprom

—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62 OK (0x00)
SPD Revision Invalid
Fundamental Memory type Unknown (0x00)

—=== Manufacturing Information ===—
Manufacturer Undefined
Part Number Undefined

Number of SDRAM DIMMs detected and decoded: 8

This is correct.

JWP & Matt, Yes I get exactly the same kind of undefined, invalid , and unknown. My bet is that the ddr5 isn’t decoded properly yet, as also suggested here:

I tried the posted fix but couldn’t get permission to write to the ic2 device files, even as root.
We can find out fast if community users w/AMD running windows, g-skill DIMMS, and CPU-Z confirms that it’s the eeproms not populated with SPD or the kernel module…

If relevant, No way to access DDR5 SDRAM information. · hardinfo2/hardinfo2 · Discussion #63 · GitHub appears to corroborate this.

Do you happen to know of any plans to implement the ability to read JEDEC DDR5 SDRAM specifications? I don’t know of another tool to accomplish it.

You’ll need Linux 6.11 to read the eeproms (the spd5118 driver).
And then decode-dimms needs to be updated for DDR5.

1 Like

@Thomas_Weissschuh, do you think Log in to Kernel.org Bugzilla would be the place to file an FR? Unfortunately, https://bugzilla.kernel.org/buglist.cgi?quicksearch=decode-dimms%20ddr5 doesn’t return anything, and https://bugzilla.kernel.org/buglist.cgi?quicksearch=i2c-tools doesn’t return any open bugs about i2c-tools, so I’m doubtful.

However, i2c-tools | Kali Linux Tools demonstrates that decode-dimms is part of i2c-tools, and i2c-tools/i2c-tools.git - I2C and SMBus user-space tools demonstrates that i2c-tools appears to be part of the kernel.

The i2c-tools maintainer is aware, so a FR wouldn’t make a difference.
A patch however, that would be great :slight_smile:

@Thomas_Weissschuh, it would allow it to be tracked. Otherwise, we’ll need to scour the commit log. I’ve made 219155 – JEDEC DDR5 SDRAM support in i2c-tools/decode-dimms. because after some research, I’m confident that this is the purview of the kernel. Correct me otherwise, and I’ll save them an unnecessary triage.

For something that low-level? We’d have no shortage of wonderful kernel contributors if everyone were that technically competent… Sorry to disappoint.

i2c-tools is userspace. A Perl script.

IIRC the maintainer was also asking for somebody to write a patch.

I disagree, but we’ll see what happens.

1 Like

@Thomas_Weissschuh, I’ll acquiesce if it makes sense - I am less familiar with this than you are, it appears. However, if it’s stored at i2c-tools/i2c-tools.git - I2C and SMBus user-space tools, surely it must be?

I double checked and in the kernel bugzilla there is a product “Tools” and Component “i2c-tools” to use for it.

1 Like

@Thomas_Weissschuh, thanks. Moved there.