DDR3 SPD
On ddr3 ram your motherboard uses serial presence detect (SPD) to find out information about your ram sticks.
Contained within this info are the timings, frequency and part number.
Most ddr3 sticks I've tested have writable spd information so with the right software we would be able to edit our timing/frequency or even our part number.
One of the specifications used in the spd of ddr3 is called jdec and is found in the following: pdf
To find out our spd information we can use cpuz on windows, and decode-dimms on Linux.
There is some information about this topic scattered about the internet, here is some in no particular order:
Read SPD
I use Debian most of the time so I'll show you how to do it there
sudo apt install i2c-tools
sudo modprobe eeprom
sudo modprobe i2c-i801 #for intel
sudo decode-dimms
# decode-dimms version $Revision$
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/0-0050
Guessing DIMM is in bank 1
---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116 OK (0x63B6)
# of bytes written to SDRAM EEPROM 176
Total number of bytes in EEPROM 256
Fundamental Memory type DDR3 SDRAM
Module Type SO-DIMM
---=== Memory Characteristics ===---
Maximum module speed 1600 MHz (PC3-12800)
Size 8192 MB
Banks x Rows x Columns x Bits 8 x 16 x 10 x 64
Ranks 2
SDRAM Device Width 8 bits
Bus Width Extension 0 bits
tCL-tRCD-tRP-tRAS 11-11-11-29
Supported CAS Latencies (tCL) 11T, 10T, 9T, 8T, 7T, 6T, 5T
---=== Timings at Standard Speeds ===---
tCL-tRCD-tRP-tRAS as DDR3-1600 11-11-11-29
tCL-tRCD-tRP-tRAS as DDR3-1333 9-9-9-24
tCL-tRCD-tRP-tRAS as DDR3-1066 7-7-7-20
tCL-tRCD-tRP-tRAS as DDR3-800 6-6-6-15
---=== Timing Parameters ===---
Minimum Cycle Time (tCK) 1.250 ns
Minimum CAS Latency Time (tAA) 13.125 ns
Minimum Write Recovery time (tWR) 15.000 ns
Minimum RAS# to CAS# Delay (tRCD) 13.125 ns
Minimum Row Active to Row Active Delay (tRRD) 6.000 ns
Minimum Row Precharge Delay (tRP) 13.125 ns
Minimum Active to Precharge Delay (tRAS) 36.000 ns
Minimum Active to Auto-Refresh Delay (tRC) 49.125 ns
Minimum Recovery Delay (tRFC) 300.000 ns
Minimum Write to Read CMD Delay (tWTR) 7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP) 7.500 ns
Minimum Four Activate Window Delay (tFAW) 30.000 ns
---=== Optional Features ===---
Operable voltages 1.5V
RZQ/6 supported? Yes
RZQ/7 supported? Yes
DLL-Off Mode supported? Yes
Operating temperature range 0-95 degrees C
Refresh Rate in extended temp range 2X
Auto Self-Refresh? Yes
On-Die Thermal Sensor readout? No
Partial Array Self-Refresh? No
Module Thermal Sensor No
SDRAM Device Type Standard Monolithic
---=== Physical Characteristics ===---
Module Height 30 mm
Module Thickness 2 mm front, 2 mm back
Module Width 67.6 mm
Module Reference Card F revision 0
Rank 1 Mapping Standard
---=== Manufacturer Data ===---
Module Manufacturer Team Group Inc.
DRAM Manufacturer Team Group Inc.
Manufacturing Date 2016-W01
Assembly Serial Number 0x02014CD7
Part Number Gompa MEMZ----1600
This will allow you to see the current spd data.
Bus info
To modify your spd data you will first need to find out on what bus your spd lives so we run:
sudo i2cdetect -l
i2c-3 i2c i915 gmbus panel I2C adapter
i2c-1 i2c i915 gmbus ssc I2C adapter
i2c-6 i2c i915 gmbus dpd I2C adapter
i2c-4 i2c i915 gmbus dpc I2C adapter
i2c-2 i2c i915 gmbus vga I2C adapter
i2c-0 smbus SMBus I801 adapter at 2040 SMBus adapter
i2c-7 i2c DPDDC-B I2C adapter
i2c-5 i2c i915 gmbus dpb I2C adapter
Most of the time your memory spd will be located on the smbus so we scan the smbus:
sudo i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 08 -- -- -- -- -- -- --
10: -- -- -- -- -- 15 -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- 32 -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- --
50: 50 -- 52 -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
On this acer 756 the memory spd is located on 50 and 52.
The spd is located on 50 51 52 53 depending on your slots (I haven't checked boards with more than 4 dimms but I would imagine they show up on 53 and 54 respectively)
This should get you started on your spd info, the next post will be a script to modify and flash your spd from Debian.