Check out my first novel, midnight's simulacra!

EE1004: Difference between revisions

From dankwiki
No edit summary
No edit summary
Line 37: Line 37:
[schwarzgerat](1) $  
[schwarzgerat](1) $  
</pre>
</pre>
At this point, <tt>decode-dimms</tt> ought be able to pull the EE1004 information.
At this point, <tt>decode-dimms</tt> ought be able to pull the EE1004 information. Try using <tt>decode-dimms --side-by-side</tt> for more compact presentation.

Revision as of 20:12, 4 September 2022

EE1004-v is a JEDEC standard for SPD published May 2022. It is used in DDR4+ DIMMs, and has its own kernel module, ee1004, superseding the at24 module used for AT24C02 EEPROMs. These are 512-byte devices accessed through a single I2C address; SMBUS controls whether the upper or lower page is accessed.

Binding EE1004

Load the eeprom and ee1004 modules (the former is still necessary for decode-dimms to function, but is deprecated). Determine which DIMMs are populated via addresses 0x50--0x57 on an SMBUS-type I2C connection. Here, buses 0 and 1 are SMBUS (using the i2c-piix4 module).

[schwarzgerat](0) $ i2cdetect -l
i2c-0	smbus     	SMBus PIIX4 adapter port 0 at 0b00	SMBus adapter
i2c-1	smbus     	SMBus PIIX4 adapter port 2 at 0b00	SMBus adapter
.....
[schwarzgerat](0) $ 

Let's take a look across bus 0:

[schwarzgerat](0) $ i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         08 09 -- -- 0c -- -- -- 
10: 10 11 -- 13 14 15 -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- 27 28 -- -- -- -- -- -- -- 
30: 30 31 -- -- 34 35 -- 37 -- -- 3a -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- 4a -- -- -- -- -- 
50: UU UU UU UU UU UU UU UU -- -- -- -- -- -- -- -- 
60: -- -- 62 63 64 -- -- -- 68 69 -- -- 6c -- -- -- 
70: 70 71 72 -- 74 -- 76 --                         
[schwarzgerat](0) $ 

Here, we see my 8 DIMMs populating addresses 0x50 through 0x57. We now must associate these addresses with ee1004:

[schwarzgerat](0) $ for i in `seq 0 7` ; do echo ee1004 0x5$i | sudo tee /sys/bus/i2c/devices/i2c-0/new_device ; done
ee1004 0x50
ee1004 0x51
ee1004 0x52
ee1004 0x53
ee1004 0x54
ee1004 0x55
ee1004 0x56
ee1004 0x57
[schwarzgerat](1) $ 

At this point, decode-dimms ought be able to pull the EE1004 information. Try using decode-dimms --side-by-side for more compact presentation.