IBM Thinkpad 600 Memory Upgrade
I got an IBM Thinkpad 600 from eBay that has 32MB RAM and a working CD drive with no hard drive or external floppy disk drive and tried to see what it can be used for.
With 32MB RAM and a 20GB IDE hard drive installed, operating systems such as MS-DOS, Windows 95 and Windows 98 work well on this laptop. The three Linux variants that I tried (Slax, Puppy, DSL) manage to boot up to the shell but none could actually boot up to a usable GUI such as KDE or X-Window, presumably due to limited memory. Puppy Linux displayed a distorted and unrecognizable desktop window once it finished booting whereas DSL shows a working desktop with a very pale color theme and hence, unusable. Even Hiren Boot CD 8.4 fails to boot up due to not enough memory to create the RAM drive.
As my intention is to get Linux running on this laptop, I proceed to upgrade the RAM for this notebook. The official Thinkpad specs specified that the maximum RAM allowed is 288 MB with 2x128MB SO-DIMM 144-PIN RAM modules installed in the two available slots, plus the 32MB onboard memory.
At first I decided to purchase two MT4LSDT1664LHG-133C1 128MB 133 MHz CL3 memory modules from eBay for a cheap price. Once installed, the laptop detected correctly that 288MB has been installed but could not boot up. The system hangs after the memory counts and there is no POST beep. This turned out to be the memory speed – the onboard memory module is PC66 and hence will not work with PC133 modules. I therefore bought another two MT8LSDT1664HG-10EB1 100MHz CL2 memory modules and decided to try again.
This time the system boots up successfully and seems to have no problems with Mini Windows 98 from Hiren Boot CD. However, the detected total memory is 224 MB, not 288 MB as expected. A mysterious amount of 64MB has been lost. With further experiment, I realized that one of the memory slots seems to recognize both of my 128MB memory modules as 64MB only while the other slot detects their correct capacity, which is very strange.
Booting up into EasySetup by pressing and holding the F1 key while turning the machine on in order to checks the memory count, I noticed the following:
The above text reads “Installed: 294912 KB/Usable: 228800KB” which means the system detects the correct memory module size, just that it is unable to use the extra 64MB. Why? The answer is provided in this forum discussion, post #4.
In short, the Thinkpad 600 has 2 physical memory slots and supports 4 memory banks (banks 0, 1, 2, 3) in total. Memory slot 1 is assigned 2 memory banks (bank 1 and bank 3). However, memory slot 0 is assigned one memory bank (bank 2) since bank 0 has been taken by the onboard 32MB memory module.
The 128MB PC100 module reports itself as having 2 memory banks of 64MB each. When the module is inserted into slot 1, everything works well because both memory banks are available. When it is inserted into slot 0 that has only one memory bank, 64MB is lost because the other memory bank cannot be used. This explains why the total amount of usable memory is 128+128+32-64 = 228MB.
In order to achieve the maximum possible 288MB, I would have to find a 128MB memory module which reports itself as having a single bank of 128MB. The difference seems to be speed-related. For example, the 128MB PC133 I purchased earlier, albeit not compatible, seems to report a single 128MB memory bank and hence, helps achieve the maximum 288MB memory. The other hint that I have is the number of memory chips on the memory module – the PC133 module has 2 whereas the PC100 has 4.
In the end, because there is no need for an extra 64MB of RAM on this laptop, I decided to stay with 228MB.