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, 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).
Under Linux, lm-sensors does a good job reading this information from the chips. The kernel module named eeprom1) acquires such information and exposes it via 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 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 i2c-tools, where it can be found under the eeprom directory.
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
Please refer to 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 package at /usr/share/doc/lm-sensors/doc/chips/eeprom.gz.
# modprobe eeprom should work.