This is just for fun. Please don't tell me that a 4GB DDR3 is not worth this work.
I received a beeping PC that had a RAM issue: a single Kingston KVR1333D3N9/4G DIMM (part number 99U5471-012.A00LF). I noticed that the board beeped the same way either with this DIMM installed or without it. If I installed a second DIMM, the latter was detected, while the other one was like it didn't exist.
I replaced memory to fix customer problem, but I kept thinking about that faulty memory module. I considered that it could have a problem with SPD EEPROM and it simply was not detected at all, being otherwise as functional as before.
Since I have a chinese XGecu TL866II+ EEPROM & Flash programmer, and wanted to play with it, I was curious to see if I could access SPD EEPROM without using SMbus. For this purpose I've cheched which pins of DDR3 DIMM go to SPD EEPROM:
116 GND
117 A0
118 SCL
119 A2
236 Vcc
237 A1
238 SDA
239 GND
So, everything to access SPD is on last 5 pins (both sides). This pinout is different on each DDRx standard, beware! I've desoldered an end of a DDR2 socket from a bad motherboard (impossible to me to desolder the whole socket). Then I've wired socket pins to the programmer, maching the pinout of a standard 24C02 I2C EEPROM. WP pin (Write Protect) is not used because DIMM modules usually hardwire this pin to GND, thus enabling write operations to SPD.
I've tested this thing by reading a good DIMM, selecting any standard I2C 2Kbit EEPROM in XGecu programmer (a CSI CAT24C02, for instance): success. Checked data with a SPD decoder Perl script: OK.
Then I try the bad module: as expected, it just outputs 1's, and it fails any write operation. EEPROM is bad.
I get a good 2Kbit TSSOP I2C EEPROM from an old 512MB DDR DIMM. Replace the one at DDR3 module. Read it successfully and decode data corresponding to the old DDR module. Then it comes the last problem: how to get valid SPD data for this module?
I search the web for Kingston part number, adding "SPD registers" to the search. This returns several CPU-Z hardware dumps posted in forums by users asking for advice about some issue. I copy the hex dump and convert it to binary, program the EEPROM and DIMM is back to life again!
I received a beeping PC that had a RAM issue: a single Kingston KVR1333D3N9/4G DIMM (part number 99U5471-012.A00LF). I noticed that the board beeped the same way either with this DIMM installed or without it. If I installed a second DIMM, the latter was detected, while the other one was like it didn't exist.
I replaced memory to fix customer problem, but I kept thinking about that faulty memory module. I considered that it could have a problem with SPD EEPROM and it simply was not detected at all, being otherwise as functional as before.
Since I have a chinese XGecu TL866II+ EEPROM & Flash programmer, and wanted to play with it, I was curious to see if I could access SPD EEPROM without using SMbus. For this purpose I've cheched which pins of DDR3 DIMM go to SPD EEPROM:
116 GND
117 A0
118 SCL
119 A2
236 Vcc
237 A1
238 SDA
239 GND
So, everything to access SPD is on last 5 pins (both sides). This pinout is different on each DDRx standard, beware! I've desoldered an end of a DDR2 socket from a bad motherboard (impossible to me to desolder the whole socket). Then I've wired socket pins to the programmer, maching the pinout of a standard 24C02 I2C EEPROM. WP pin (Write Protect) is not used because DIMM modules usually hardwire this pin to GND, thus enabling write operations to SPD.
I've tested this thing by reading a good DIMM, selecting any standard I2C 2Kbit EEPROM in XGecu programmer (a CSI CAT24C02, for instance): success. Checked data with a SPD decoder Perl script: OK.
Then I try the bad module: as expected, it just outputs 1's, and it fails any write operation. EEPROM is bad.
I get a good 2Kbit TSSOP I2C EEPROM from an old 512MB DDR DIMM. Replace the one at DDR3 module. Read it successfully and decode data corresponding to the old DDR module. Then it comes the last problem: how to get valid SPD data for this module?
I search the web for Kingston part number, adding "SPD registers" to the search. This returns several CPU-Z hardware dumps posted in forums by users asking for advice about some issue. I copy the hex dump and convert it to binary, program the EEPROM and DIMM is back to life again!
Comment