IBM Thinkpad 600E bios mod for processor update

Don't ask how to hack password. (BIOS Passwords)
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

alintolea1 wrote: Hey swssnyder, I have the same problem here, one of the two thinkpads 600e i'm trying to upgrade is an "old" model, a 55U, with 46H bios.
Did you manage to find the corect bit in the bios that needs to be changed?
Despite the fact the the original value at 0x20 was not the same as that reported by everyone here, I took a chance and it worked.

The standard advice here is to change values from 0x02 to 0x0A at location 0x20. Well, my original value at that location was 0x20, not 0x02. After clearing CMOS a few time in the course of updating my CPU, the value at that same location was 0x00. Hmm... I took a chance and set bit 3 anyway, leaving the final value of 0x08.

That worked. The BIOS now boots with the L2 cache on my P3/500 disabled, then I later re-enable it with a Linux device driver. No BIOS warnings are seen at boot time. Again, this is on a 2645-57U.
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

This is good news
alintolea1
BIOS Newbie
Posts: 24
Joined: Fri Mar 25, 2005 6:08 pm
Contact:

swsnyder wrote:[


The standard advice here is to change values from 0x02 to 0x0A at location 0x20. Well, my original value at that location was 0x20, not 0x02. After clearing CMOS a few time in the course of updating my CPU, the value at that same location was 0x00. Hmm... I took a chance and set bit 3 anyway, leaving the final value of 0x08.
.
Ok, what do you mean by "eaving the final value of 0x08".
Wasn't it supposed to be 0x0A ?

Alin
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

Sharedoc wrote: PIII-modules select 100MHz FSB automatically.
What kind of memory you have?
Actually, I don't believe that is a universally true statement.

I replaced my P2/300/66MHz with a P3/500/100MHz, disabled the onboard RAM and the L2 cache. The newer CPU seems to be running at 66MHz.

My first thought, of course, was that I didn't have a real P3. The L2 cache, enabled via a Linux device driver, is 256KB in size. Then there is this perception of the processor by the Linux kernel:

Code: Select all

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 1
cpu MHz         : 330.975
cache size      : 32 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 651.26
So it seems that I really do have a non-Speedstep P3 (which is what I wanted) yet it is running at 5x66MHz, not the expected 5x100MHz.

As mentioned in prior posts this is on a 600E 2645-57U with the most recent BIOS installed.

FYI.
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

alintolea1 wrote:
swsnyder wrote:[


The standard advice here is to change values from 0x02 to 0x0A at location 0x20. Well, my original value at that location was 0x20, not 0x02. After clearing CMOS a few time in the course of updating my CPU, the value at that same location was 0x00. Hmm... I took a chance and set bit 3 anyway, leaving the final value of 0x08.
.
Ok, what do you mean by "eaving the final value of 0x08".
Wasn't it supposed to be 0x0A ?

Alin
The action that is advised is to set bit 3 (= 0x08) where the value was originally expected to be 0x02. 0x0A = 0x08 + 0x02.

Since my original value was 0x00, by setting bit 3 I ended up with a final configuration value of 0x08. 0x08 = 0x08 + 0x00. This change (from 0x00 to 0x08) disabled the L2 cache as I hoped it would.
alintolea1
BIOS Newbie
Posts: 24
Joined: Fri Mar 25, 2005 6:08 pm
Contact:

swsnyder wrote:
Sharedoc wrote: PIII-modules select 100MHz FSB automatically.
What kind of memory you have?
Actually, I don't believe that is a universally true statement.

I replaced my P2/300/66MHz with a P3/500/100MHz, disabled the onboard RAM and the L2 cache. The newer CPU seems to be running at 66MHz.

My first thought, of course, was that I didn't have a real P3. The L2 cache, enabled via a Linux device driver, is 256KB in size. Then there is this perception of the processor by the Linux kernel:

Code: Select all

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 1
cpu MHz         : 330.975
cache size      : 32 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 651.26
So it seems that I really do have a non-Speedstep P3 (which is what I wanted) yet it is running at 5x66MHz, not the expected 5x100MHz.

As mentioned in prior posts this is on a 600E 2645-57U with the most recent BIOS installed.

FYI.
Now that you mention is, mine looks worse! It's a PIII 600, but looking at /proc/cpuinfo, it shows a cahce size of 16mb (which is all right, because that's at boot time, when the L2 cache si disabled) and a processor speed of 125 Mhz! And bogomips around 300 or something...
I will post the whole output tonight.
Plus, the machine doesn't seem that much faster that it was when I had the PiII 366 Mhz in it.

Something is definetly wrong

Alin
alintolea1
BIOS Newbie
Posts: 24
Joined: Fri Mar 25, 2005 6:08 pm
Contact:

swsnyder wrote:
Sharedoc wrote: PIII-modules select 100MHz FSB automatically.
What kind of memory you have?
Actually, I don't believe that is a universally true statement.

I replaced my P2/300/66MHz with a P3/500/100MHz, disabled the onboard RAM and the L2 cache. The newer CPU seems to be running at 66MHz.

My first thought, of course, was that I didn't have a real P3. The L2 cache, enabled via a Linux device driver, is 256KB in size. Then there is this perception of the processor by the Linux kernel:

Code: Select all

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 1
cpu MHz         : 330.975
cache size      : 32 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 651.26
So it seems that I really do have a non-Speedstep P3 (which is what I wanted) yet it is running at 5x66MHz, not the expected 5x100MHz.

As mentioned in prior posts this is on a 600E 2645-57U with the most recent BIOS installed.

FYI.
Ok, hmm. Its seems it's a IBM bios thing:
http://mailman.linux-thinkpad.org/piper ... 03055.html

However, I need to see what's happening when I boot on AC power, I htink I consistenly boot on battery.

Swsnyder, can you check your /proc/cpuinfo on both battery and AC power boots?

Alin
alintolea1
BIOS Newbie
Posts: 24
Joined: Fri Mar 25, 2005 6:08 pm
Contact:

swsnyder wrote:
alintolea1 wrote:
swsnyder wrote:[


The standard advice here is to change values from 0x02 to 0x0A at location 0x20. Well, my original value at that location was 0x20, not 0x02. After clearing CMOS a few time in the course of updating my CPU, the value at that same location was 0x00. Hmm... I took a chance and set bit 3 anyway, leaving the final value of 0x08.
.
Ok, what do you mean by "eaving the final value of 0x08".
Wasn't it supposed to be 0x0A ?

Alin
The action that is advised is to set bit 3 (= 0x08) where the value was originally expected to be 0x02. 0x0A = 0x08 + 0x02.

Since my original value was 0x00, by setting bit 3 I ended up with a final configuration value of 0x08. 0x08 = 0x08 + 0x00. This change (from 0x00 to 0x08) disabled the L2 cache as I hoped it would.
You kind of lost me here (sorry, my hex math is not that good).
So, I'm replacing only one value.
It's now 0x20 (and it was supposed to be 0x02) . I'm replacing it by 0x0A. IS that right?
Sorry for being so picky here...

Alin
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

alintolea1 wrote: Ok, hmm. Its seems it's a IBM bios thing:
http://mailman.linux-thinkpad.org/piper ... 03055.html

However, I need to see what's happening when I boot on AC power, I htink I consistenly boot on battery.

Swsnyder, can you check your /proc/cpuinfo on both battery and AC power boots?

Alin
Yes, I understand that the CPU is identified at boot time and not thereafter. After all, the properties of the processor won't change after boot-up, right? Ahem.

The expectation of CPU identification at boot up is why the output of /proc/cpuinfo says Cache=32KB, despite my enabling the 256KB L2 cache. The kernel only sees the L1 cache because that is all that is present at boot time. As the L2 is enabled when the boot process is nearly over, the extra cache won't be considered.

This doesn't explain the reported processor speed, though. The initial lack of L2 cache surely affects performance, but it shouldn't affect the processor speed calculations. Besides, how likely is it that reduced performance results in a speed calculation that exactly works out to 5x66MHz? No, this CPU is running with a 66MHz FSB.

I don't think I stated this expliciitly in earlier posts but all my RAM is 100MHz. So I have a CPU and RAM that are both rated for 100MHz operation, yet it appears that the FSB is runing at 66MHz. Hmm....

FWIW, I always run my 600E on AC power. Only during a power failure is my battery used. The /proc/cpuinfo output I posted earlier was in this context. Given that I deliberately bought a non-Speedstep CPU (confirmed in the CPU features flags) would battery/AC power really be pertinent?

BTW, this machine is rock-solid after the CPU upgrade. And it runs cool - too cool, given that IBM never envisioned a 500MHz/100MHz P3 CPU in this case.
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

alintolea1 wrote: You kind of lost me here (sorry, my hex math is not that good).
So, I'm replacing only one value.
It's now 0x20 (and it was supposed to be 0x02) . I'm replacing it by 0x0A. IS that right?
Sorry for being so picky here...

Alin
No, you don't want to replace 0x20 with 0x0A. The goal is to keep the changes to a bare minimum because we don't know what all those bits control. Given that you can clear the CMOS to get back to a default state, changing something inappropriate would not be disasterous, but why ask for trouble?

So you're starting with a value of 0x20. To this existing value we OR in 0x08, giving a final value of 0x28. That final value consists of your original bits (00100000 = 0x20) plus the newly set L2 disable bit (00001000 = 0x08), resulting in (00101000 = 0x28).

Code: Select all

 x x x x 1 x x x
|       |     |
|       |     |
|       |     -- bit00
|       |
|       -- 1 = disable L2 cache, 0 = enable cache
|
-- bit07

x = unknown use
I too had that same 0x20 value instead of the 0x02 that everybody else here reported. In the course of updating the CPU, though, I cleared the CMOS several times, then set the BIOS configuration (date/time, boot device order, etc.) back to their correct states. After the new CPU was in place and apparently working, I went back into the BIOS to edit the value at location 0x20. It was no longer the 0x20 value I had at the beginning but now was 0x00. I OR'd in 0x08 to this zero byte to give me a final value of 0x08. That is, I had no bits set before the change, and only a single bit (disable L2 cache) set after the change.

Hope this is more clear.
alintolea1
BIOS Newbie
Posts: 24
Joined: Fri Mar 25, 2005 6:08 pm
Contact:

swsnyder wrote:
alintolea1 wrote: Ok, hmm. Its seems it's a IBM bios thing:
http://mailman.linux-thinkpad.org/piper ... 03055.html

However, I need to see what's happening when I boot on AC power, I htink I consistenly boot on battery.

Swsnyder, can you check your /proc/cpuinfo on both battery and AC power boots?

Alin
I don't think I stated this expliciitly in earlier posts but all my RAM is 100MHz. So I have a CPU and RAM that are both rated for 100MHz operation, yet it appears that the FSB is runing at 66MHz. Hmm....

BTW, this machine is rock-solid after the CPU upgrade. And it runs cool - too cool, given that IBM never envisioned a 500MHz/100MHz P3 CPU in this case.
Did you disabled the onboard 32 mb? I think that's 66 mhz. But my question is probably beside the point here, I disabled mine, but the speed calculations seemed to be the same.

Now, does any of the windows runing upgraders out there have simmilar problems? Did you guys run any benchmarks to confirm your processor really runs at 600-700 mhz as advertised?

I forgot to mention, and it might be worth checking in your machine too, swsnyder.

I checked my /var/log/messages. The first entried predate the upgrade, they're since I had a PII 366 mhz.
That processor was reported as runing at 85 Mhz at boot time. Now the log files show 125 mhz. It doesn't quite add up here.

Also, I ran nbench ( a friend recomended it) and the machine sensibly beat their linux baseline (and amdk6 2 233 mhz with 256 L2 cache).

http://www.tux.org/~mayer/linux/bmark.html

I'm also looking at the table and it seems that the processor sits well with their PIII 600 copermine core results.
http://www.tux.org/~mayer/linux/results2.html

I wll retest tonight and tell you what I find.
Alin
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

alintolea1 wrote:
swsnyder wrote: I don't think I stated this expliciitly in earlier posts but all my RAM is 100MHz. So I have a CPU and RAM that are both rated for 100MHz operation, yet it appears that the FSB is runing at 66MHz. Hmm....
Did you disabled the onboard 32 mb? I think that's 66 mhz. But my question is probably beside the point here, I disabled mine, but the speed calculations seemed to be the same.
I expressed myself badly there. I meant that all my working RAM is 100MHz. My total installed RAM consists of 32MB/66MHz onboard RAM, which is disabled, and 2 128MB/100MHz SODIMMs. Thus my 256MB of functional RAM is all 100MHz. Both the BIOS and Linux kernel report 256MB of installed system memory.
alintolea1
BIOS Newbie
Posts: 24
Joined: Fri Mar 25, 2005 6:08 pm
Contact:

[/quote]
I expressed myself badly there. I meant that all my working RAM is 100MHz. My total installed RAM consists of 32MB/66MHz onboard RAM, which is disabled, and 2 128MB/100MHz SODIMMs. Thus my 256MB of functional RAM is all 100MHz. Both the BIOS and Linux kernel report 256MB of installed system memory.[/quote]

I fiigured.
Now, did you try nbench?

Alin
swsnyder
New visitors - please read the rules.
Posts: 13
Joined: Wed Mar 16, 2005 4:29 am

alintolea1 wrote: Now, did you try nbench?
I won't be able to try it until tonght as my 600E is at home and I'm at work.
Holgi128
New visitors - please read the rules.
Posts: 12
Joined: Sun Mar 27, 2005 2:16 am

I`m very happy.

I installed my PIII 650 without a mod.
I have two 128MB PC66 memory modules. The onboard 32MB is disabled.
I have 500MHz and FSB of 100. And the cache works with 256.
I used the Cache utility which i posted before. It is easy to use.

I wonder about the two 128MB modules. They work perfect at 100Mhz.

Tomorrow i will do the mod on the CPU to drive it at 650.

Greetings and thanks to all who help me with their postings here to reach this result.

Holgi
Post Reply