Thought I'd share a potentially useful achievement I had today at the office
At work we recently picked up some old Dell Inspirons (3x 5100, 1x 5150, 1x 510m) from another office who'd put them on the scrap pile, and I was tasked with refurbing them. They're old by today's standards (Pentium IVs), but still very capable of running MS Office and therefore still useful for some of our workers just doing some wordprocessing or data entry.
They came to me in various states of repair. They all had loose, floppy hinges and the lids wouldn't stay up - the screws had simply worked loose so now they're nice and solid. One had a failed backlight - turned out to be cold solder joint, now fixed. They all had screws missing - but I had lots of spares from previously written-off laptops, so I replaced them.
Once fixed, we decided to upgrade them. The hard disks were all removed and replaced with brand new 80GB Samsungs. New batteries were bought for them all, and finally I ordered some RAM to max them out at 2GB - previously they only had 512MB.
Here's where the fun began
The RAM I bought - the cheapest I could find - was rated with a maximum speed of 200MHz, aka PC-3200. It was manufactured only last year, so it's not the slower kind of DDR.
These machines use DDR 133MHz (PC-2100) SODIMMs, have two slots, and can semi-unofficially take 1GB DIMMs for a max of 2GB. As time had passed, Dell had released BIOS updates to fix bugs and add support for certain other CPUs and RAM specs - for *some* of them.
The 5100s accepted the RAM straight away, as in one of the BIOS updates Dell had added a "fix" to allow modules rated at 166MHz to be recognised and just used at the slower speed.
However, the 5150 refused to get past POST with the new modules in place. On powerup, it would flash the Caps-Lock LED and proceed no further.
"Why?!" I thought. "This laptop is very nearly identical to the other ones! If it works on the others, why not this one?"
I then tried the DIMMs in the 510m, and had the same result! No POST, blinking LED. And the 510m and 5150 are supposed to be higher-spec models than the 5100. Crazy.
So, it was time to investigate. Refusing to let a stupid problem like this get in my way, I went to one of my working 5100s and fired up CPU-Z. And this what I saw:
The above shows the SPD information contained on one of the 1GB memory modules. Most modern memory modules have a tiny flash chip onboard which stores information about the module's capabilities, max speeds, timings etc, and this one was no different. However, notice how there's only information in the table for 166MHz, and 200MHz - they haven't bothered describing a 133MHz mode in this table. Yet this computer only supports a maximum speed of 133MHz. Luckily, this Dell 5100 seems to ignore this fact and the BIOS accepts it regardless - on the other page it shows the module running at 133MHz.
Let's compare this to the SPD table of one of the stock RAM modules that the computer came with, a 256MB DIMM:
We have profiles there for 133MHz, and 166MHz. So on my new 1GB DIMM, they simply haven't bothered to include a 133MHz profile as they probably didn't expect it to be used with something this slow.
We can fix that.
A program called SPDTool allows us to retrieve and edit the SPD table, and re-flash it back to the DIMM. Here's SPDTool's view of the downloaded information from one of my 1GB DIMMs:
Again, you can see at the bottom that 133MHz is missing - only profiles for 166 and 200MHz.
So, if I scroll down a bit, I find this row - "Minimum Clock Cycle at CLX-2":
CLX-1 is 166MHz, so what happens if I set CLX-2 to 133MHz?
Check it out! The table at the bottom has become populated with a 133MHz row with timings.
Without wanting to mess around much more, I saved my changed back to the memory module, and repeated for the other DIMM.
I put the modified DIMMs into the Dell 5150 and ...
It worked
It flew through POST, a quick beep with a message to confirm the RAM size had changed, and Windows showed 2GB available.
I then rebooted into Memtest86, and it passed the test perfectly.
The modules worked in the 510m, too - so we have 100% success.
Thought this might be useful for someone else trying to upgrade a stubborn old computer I was very pleased to get this working - I didn't fancy trying to hunt down a working RAM set and being forever mystified as to why it didn't work with these.
I think this is simply because the RAM is no-brand (therefore cheaper - hell, they're not worth spending loads on, these machines) and not as much care went into the SPD stuff. I'd probably bet that something reputable like a Crucial or Kingston module wouldn't have needed this. But good to know!
At work we recently picked up some old Dell Inspirons (3x 5100, 1x 5150, 1x 510m) from another office who'd put them on the scrap pile, and I was tasked with refurbing them. They're old by today's standards (Pentium IVs), but still very capable of running MS Office and therefore still useful for some of our workers just doing some wordprocessing or data entry.
They came to me in various states of repair. They all had loose, floppy hinges and the lids wouldn't stay up - the screws had simply worked loose so now they're nice and solid. One had a failed backlight - turned out to be cold solder joint, now fixed. They all had screws missing - but I had lots of spares from previously written-off laptops, so I replaced them.
Once fixed, we decided to upgrade them. The hard disks were all removed and replaced with brand new 80GB Samsungs. New batteries were bought for them all, and finally I ordered some RAM to max them out at 2GB - previously they only had 512MB.
Here's where the fun began
The RAM I bought - the cheapest I could find - was rated with a maximum speed of 200MHz, aka PC-3200. It was manufactured only last year, so it's not the slower kind of DDR.
These machines use DDR 133MHz (PC-2100) SODIMMs, have two slots, and can semi-unofficially take 1GB DIMMs for a max of 2GB. As time had passed, Dell had released BIOS updates to fix bugs and add support for certain other CPUs and RAM specs - for *some* of them.
The 5100s accepted the RAM straight away, as in one of the BIOS updates Dell had added a "fix" to allow modules rated at 166MHz to be recognised and just used at the slower speed.
However, the 5150 refused to get past POST with the new modules in place. On powerup, it would flash the Caps-Lock LED and proceed no further.
"Why?!" I thought. "This laptop is very nearly identical to the other ones! If it works on the others, why not this one?"
I then tried the DIMMs in the 510m, and had the same result! No POST, blinking LED. And the 510m and 5150 are supposed to be higher-spec models than the 5100. Crazy.
So, it was time to investigate. Refusing to let a stupid problem like this get in my way, I went to one of my working 5100s and fired up CPU-Z. And this what I saw:
The above shows the SPD information contained on one of the 1GB memory modules. Most modern memory modules have a tiny flash chip onboard which stores information about the module's capabilities, max speeds, timings etc, and this one was no different. However, notice how there's only information in the table for 166MHz, and 200MHz - they haven't bothered describing a 133MHz mode in this table. Yet this computer only supports a maximum speed of 133MHz. Luckily, this Dell 5100 seems to ignore this fact and the BIOS accepts it regardless - on the other page it shows the module running at 133MHz.
Let's compare this to the SPD table of one of the stock RAM modules that the computer came with, a 256MB DIMM:
We have profiles there for 133MHz, and 166MHz. So on my new 1GB DIMM, they simply haven't bothered to include a 133MHz profile as they probably didn't expect it to be used with something this slow.
We can fix that.
A program called SPDTool allows us to retrieve and edit the SPD table, and re-flash it back to the DIMM. Here's SPDTool's view of the downloaded information from one of my 1GB DIMMs:
Again, you can see at the bottom that 133MHz is missing - only profiles for 166 and 200MHz.
So, if I scroll down a bit, I find this row - "Minimum Clock Cycle at CLX-2":
CLX-1 is 166MHz, so what happens if I set CLX-2 to 133MHz?
Check it out! The table at the bottom has become populated with a 133MHz row with timings.
Without wanting to mess around much more, I saved my changed back to the memory module, and repeated for the other DIMM.
I put the modified DIMMs into the Dell 5150 and ...
It worked
It flew through POST, a quick beep with a message to confirm the RAM size had changed, and Windows showed 2GB available.
I then rebooted into Memtest86, and it passed the test perfectly.
The modules worked in the 510m, too - so we have 100% success.
Thought this might be useful for someone else trying to upgrade a stubborn old computer I was very pleased to get this working - I didn't fancy trying to hunt down a working RAM set and being forever mystified as to why it didn't work with these.
I think this is simply because the RAM is no-brand (therefore cheaper - hell, they're not worth spending loads on, these machines) and not as much care went into the SPD stuff. I'd probably bet that something reputable like a Crucial or Kingston module wouldn't have needed this. But good to know!