IBM Thinkpad 600E bios mod for processor update

Don't ask how to hack password. (BIOS Passwords)
wmarcusm
BIOS Newbie
Posts: 24
Joined: Tue May 31, 2005 8:17 pm
Location: Western US

Sharedoc wrote:OK, I tried to install for Win98, but it fails to open \system32\drivers for copying file
Sharedoc,

Yes, as I suspected. Even if the OS directory structure were the same under win9x/win3x, the piix4.sys driver would not load under win9x/3x :-(

Are there a significant number of folks that would still want to run the legacy Windows codes on their ThinkPads? I could either write the code for a DOS/Win9x/Win3x driver, or just publish the southbridge register bits that need to be twiddled. Are the number of users running the newer windows OS on the 600 series in the minority? What do you think?
wmarcusm
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

Difficult to say how many legacy Win98 users there are out there.

Whatabout a pure dos DeepSleep utility that can be inserted in autoexec.bat in Win98?

To my understanding this would be quite simple extracting the core part of the SpeedStep driver.
wmarcusm
BIOS Newbie
Posts: 24
Joined: Tue May 31, 2005 8:17 pm
Location: Western US

Sharedoc wrote:Difficult to say how many legacy Win98 users there are out there.

Whatabout a pure dos DeepSleep utility that can be inserted in autoexec.bat in Win98?

To my understanding this would be quite simple extracting the core part of the SpeedStep driver.
The code to do the DeepSleep call from DOS is only a handful of x86 assembler lines. The larger piece of code is finding the location of the H/W and the base address for the ACPI register ports, in this case the southbridge H/W. Since IBM/MS DOS was written prior to widespread use of plug-and-play/configurable PCI device bridges, it provides no services for PCI configuration (must be done by the BIOS - and the BIOS can choose pretty much any location - although it is likely a fixed location for a given version of the TP BIOS). The most portable way of doing this is to query the PCI configuration registers directly for the vendor ID and device type, then read the base address location from the device table. I can probably find some code that I wrote some years back that does this.

The great aspect of testing a DOS driver is the whole system can be booted from a floppy disk :-)
wmarcusm
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

Whatabout a quick-and-dirty DOS version of DeepSleep just for TP600E with fixed port numbers?
wmarcusm
BIOS Newbie
Posts: 24
Joined: Tue May 31, 2005 8:17 pm
Location: Western US

Sharedoc wrote:Whatabout a quick-and-dirty DOS version of DeepSleep just for TP600E with fixed port numbers?
Shardoc,

I found some code to do the PCI device lookup under DOS, so I'll post a DOS version in the next day or two.
wmarcusm
daveb47
New visitors - please read the rules.
Posts: 2
Joined: Thu Jun 09, 2005 9:56 pm

Hi,Spent some time reading thru this thread,but as a total dumbo you sort of lost me quite early on.
I have 600e,upgraded to p3 500,sorted 127 problem,everything works fineMany thanx all)but can anyone tell me if i should have l2 cache enabled or not,i have software to do this.but not sure if method used is ok.

http://www.daveb47.com/L2CACHE.rar
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

Daveb47,

I was able to download the .rar package.
I can see the names of the files but not able to extract the files.
Using UltimaZip program.

Did you do the utility yourself?
wmarcusm
BIOS Newbie
Posts: 24
Joined: Tue May 31, 2005 8:17 pm
Location: Western US

Sharedoc wrote:Whatabout a quick-and-dirty DOS version of DeepSleep just for TP600E with fixed port numbers?
Sharedoc,

I've uploaded a DOS version of the DeepSleep utility to

http://home.pacbell.net/wmarcusm/deepsleep/

It is pretty beta level.

I've only tested it under PC DOS 7.0 on my TP600e 2645-55U. It only looks for one acpi bridge type (the piix4, id= 0x71138086). If IBM used other types on the 600e series I will need to add those device IDs to the utility. The "/d" option can be used to display all the bridge IDs up to the point that a match is found - or all of them if no match.
wmarcusm
ProtoColD
New visitors - please read the rules.
Posts: 3
Joined: Sun May 29, 2005 12:19 pm

wmarcusm, so with your deepsleep util. Do we need to hardware mod the cpu?? or pretty much just stick the cpu, say a p3 650 in there and then just run the util?
wmarcusm
BIOS Newbie
Posts: 24
Joined: Tue May 31, 2005 8:17 pm
Location: Western US

ProtoColD wrote:wmarcusm, so with your deepsleep util. Do we need to hardware mod the cpu?? or pretty much just stick the cpu, say a p3 650 in there and then just run the util?
ProtoColD,

If used in a TP 600e, you need to modify the MMC-2/P3 per Sharedoc, et al, discussion in this thread. The 600e series motherboard does not support the SpeedStep signals (and likely does not contain the required BIOS routines). The combination of modifying the cpu and using the DeepSleep utility will put the P3 in the higher clock rate state (performance setting). This is not "true" SpeedStep of course - the cpu multipliers are not selected dynamically based on power demand (battery or AC for example). A true SpeedStep emulation could be done on the 600e, but it would require additional mods to the motherboard, and additional driver software (or a BIOS update) to handle the power management functions (lcd open/close, AC plug in/out, etc.).
wmarcusm
daveb47
New visitors - please read the rules.
Posts: 2
Joined: Thu Jun 09, 2005 9:56 pm

I was able to download the .rar package.
I can see the names of the files but not able to extract the files.
Using UltimaZip program.

Did you do the utility yourself?
No it was one i have been given,Just downloaded it to friends pc,seems to be all there using Winrar to unzip.
Only works in dos tho.

But do i need to have l2 cache or not??
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

For TP600E with PIII processor

L2 OFF in Bios (to avoid 127 error)
L2 ON during or after operating system boot (to improve performance)
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

DeepSpeep DOS version 1.0 works perfect in my TP600E 2645-4A0.

Running now PIII-750MHz@810MHz.

Does the switch to higher SpeedStep speed from a MS-DOS window. Works also when AC powered.

Utility reports acpiBaseAddr: 0xef00

Great achievement Wmarcusm!
Sharedoc
Notebook Genius
Posts: 679
Joined: Mon Aug 18, 2003 8:46 pm
Location: Finland

Suprise

DOS DeepSleep does not produce the desired outcome when used in Windows98 autoexec.bat.

I can see the SpeedStep utility is run as part of autoexec.bat, but when the Windows98 finishes loading, the processor speed is lower speed.

Propably there is a switch back to lower speed within Windows after executing the dsleep in autoexec.bat
wmarcusm
BIOS Newbie
Posts: 24
Joined: Tue May 31, 2005 8:17 pm
Location: Western US

Sharedoc wrote:Suprise

DOS DeepSleep does not produce the desired outcome when used in Windows98 autoexec.bat.

I can see the SpeedStep utility is run as part of autoexec.bat, but when the Windows98 finishes loading, the processor speed is lower speed.

Propably there is a switch back to lower speed within Windows after executing the dsleep in autoexec.bat
Hmm... the cpu transition from real mode to protected mode during the win98 boot process most likely is the reason (unless the DeepSleep driver is not executed until after the switch to protected mode). You can try an experiment. You should be able to set the high clock speed using the utility in dos, do a warm reboot back to dos and check the speed - it should still be set to the high multiplier. Repeat same process, but now boot win98. If the speed is reset after the win98 boot, then the real to protected transition is the suspect. Looks like we may need a vxd driver to put the processor in DeepSleep after the boot process.
wmarcusm
Post Reply