====== SPD information under Linux ====== [[wp>Serial_Presence_Detect|Quoted]] from Wikipedia: "Serial Presence Detect (SPD) refers to a standardized way to automatically access information about a computer memory module". This means, it is possible by software to get information about memory modules available on your computer. This information include: manufacturer, model, size, speed, [[wp>CAS_Latency|CAS latency]], manufacturing date to name a few. This can be handy to verify the specifications of a newly bought memory module, to get information useful for overclocking and to get its serial number for archiving purposes (useful for inventories). ===== Reading data ===== Under Linux, [[http://www.lm-sensors.org/|lm-sensors]] does a good job reading this information from the chips. The kernel module named ''eeprom''((Just ''# modprobe eeprom'' should work.)) acquires such information and exposes it via [[wp>Sysfs]] at ''/sys/bus/i2c/drivers/eeprom/''. The problem is that this information is stored in a specific format (looks like garbage for humans). However, lm-sensors comes with an utility called ''decode-dimms.pl'' that is able to decode the information for us humans. It can be found at ''prog/eeprom/decode-dimms.pl'' on the lm-sensors source tree. Debian systems usually ship it together the [[http://packages.debian.org/stable/utils/lm-sensors|package]] at ''/usr/share/doc/lm-sensors/examples/eeprom/decode-dimms.pl''. As of version 3.0.0, the ''decode-dimms.pl'' script has moved to a separate package named [[http://www.lm-sensors.org/wiki/I2CTools|i2c-tools]], where it can be found under the ''eeprom'' directory. ===== Example ===== Here is an example output for my Compaq Presario notebook: $ /usr/share/doc/lm-sensors/examples/eeprom/decode-dimms.pl Memory Serial Presence Detect Decoder By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner, Jean Delvare and others Version 2.10.1 Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050 Guessing DIMM is in bank 1 ---=== SPD EEPROM Information ===--- EEPROM Checksum of bytes 0-62 OK (0x33) # of bytes written to SDRAM EEPROM 128 Total number of bytes in EEPROM 256 Fundamental Memory type DDR SDRAM SPD Revision 0.0 ---=== Memory Characteristics ===--- Maximum module speed 333MHz (PC2700) Size 256 MB tCL-tRCD-tRP-tRAS 2.5-3-3-7 Supported CAS Latencies 2.5, 2 Supported CS Latencies 0 Supported WE Latencies 1 Minimum Cycle Time (CAS 2.5) 6 ns Maximum Access Time (CAS 2.5) 0.7 ns Minimum Cycle Time (CAS 2) 7.5 ns Maximum Access Time (CAS 2) 0.7 ns ---=== Manufacturing Information ===--- Manufacturer ProMos/Mosel Vitelic Manufacturing Location Code 0x02 Part Number V826632B24SCTG-C0 Manufacturing Date 2005-W23 Assembly Serial Number 0x32162D00 Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0051 Guessing DIMM is in bank 2 ---=== SPD EEPROM Information ===--- EEPROM Checksum of bytes 0-62 OK (0x33) # of bytes written to SDRAM EEPROM 128 Total number of bytes in EEPROM 256 Fundamental Memory type DDR SDRAM SPD Revision 0.0 ---=== Memory Characteristics ===--- Maximum module speed 333MHz (PC2700) Size 256 MB tCL-tRCD-tRP-tRAS 2.5-3-3-7 Supported CAS Latencies 2.5, 2 Supported CS Latencies 0 Supported WE Latencies 1 Minimum Cycle Time (CAS 2.5) 6 ns Maximum Access Time (CAS 2.5) 0.7 ns Minimum Cycle Time (CAS 2) 7.5 ns Maximum Access Time (CAS 2) 0.7 ns ---=== Manufacturing Information ===--- Manufacturer ProMos/Mosel Vitelic Manufacturing Location Code 0x02 Part Number V826632B24SCTG-C0 Manufacturing Date 2005-W23 Assembly Serial Number 0xE6142D00 Number of SDRAM DIMMs detected and decoded: 2 ===== References ===== Please refer to [[http://www.lm-sensors.org/|lm-sensors]]'s documentation for more details. Documentation regarding the ''eeprom'' module can be found on it's source tree at ''doc/chips/eeprom''. Debian systems usually ship it together the [[http://packages.debian.org/stable/utils/lm-sensors|package]] at ''/usr/share/doc/lm-sensors/doc/chips/eeprom.gz''.