I'm trying to read DDR4 RAM SPD data with the new ee1004 driver. I thought that after modprobe ee1004 I would be able to read data from /sys/bus/i2c/drivers/ee1004, however thats not the case (no devices appeared there). Am I missing something?

I'm running Ubuntu 19.04 with Kernel 5.0.0-13. Contents of ee1004 directory in sysfs is:

user@ryzen:/sys/bus/i2c/drivers/ee1004$ ls -l
celkom 0
--w------- 1 root root 4096 apr 28 21:33 bind
lrwxrwxrwx 1 root root    0 apr 28 21:33 module -> ../../../../module/ee1004
--w------- 1 root root 4096 apr 28 21:33 uevent
--w------- 1 root root 4096 apr 28 21:33 unbind

I was able to find solution thanks to RafDouglas.

The trick is to manually set i2c addresses to ee1004 driver. Follow these instructions https://www.spinics.net/lists/linux-i2c/msg32331.html (start at "First you must find out the i2c bus number of your motherboard's SMBus ...")

| improve this answer | |

Welcome, user22600!

You can try using decode-dimms, which supports the ee1004 driver:

sudo apt-get install i2c-tools
sudo modprobe eeprom
sudo modprobe ee1004
decode-dimms|grep -A6 SPD

looking at your specific listing of /sys/bus/i2c/drivers/ee1004, however, I am not sure the modules are detected correctly by the kernel, which is a pre-requisite of any tool.

After loading the ee1004 module, and verifying no errors are returned, I would suggest to check dmesg outputs:

sudo dmesg

sudo dmesg -c
sudo modprobe eeprom
sudo modprobe ee1004
sudo dmesg
| improve this answer | |
  • Hello @RafDouglas, unfortunatelly it did solved my problem. There are no messages in dmesg after loading ee1004. Decode-dimms is also throwing error: No EEPROM found, the kernel probably does not support your hardware. Is there any other way how to check whether ee1004 is working? Or is this kernel bug or ee1004 bug? – user22600 May 6 '19 at 10:17
  • 1
    what do you get from ls -la /sys/bus/i2c/drivers/ee1004/module/ ? – RafDouglas May 6 '19 at 16:57
  • this: pastebin.ubuntu.com/p/ZwgSmJXw3h – user22600 May 6 '19 at 20:53
  • I edited the previous answer, adding sudo modprobe eeprom which your system might have missed. Just to ask the obvious: are you positive your PC has DDR4 memory modules mounted? if you issue: modprobe i2c-dev i2cdetect $(i2cdetect -l | grep smbus|tr " \t" '--'|cut -d'-' -f2) 0x50 0x57 are there addresses in use in the 0x50-0x55 range? – RafDouglas May 7 '19 at 7:24
  • Please see also the original post of the decode-dimms developer: spinics.net/lists/linux-i2c/msg32331.html – RafDouglas May 7 '19 at 7:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.