#101 fsb overclocking on gm45

Closed
opened 2 years ago by vimuser · 2 comments

See notes about BSEL: https://www.overclockers.com/intel-lga775-pad-modding/

DO NOT actually do what's on this page, they recommend all kinds of insanity. However, it should be possible to FSB mod thinkpads. You pull BSEL 1 and 2 high or low (BSEL 0 should always be low), to get different speeds.

Theoretically, GM45 can handle FSB 1333MHz, and maybe FSB 1600MHz. This guide says 1333MHz: https://thinkpad-forum.de/threads/t500-und-t400-pinmod-f%C3%BCr-fsb-1333.182146/

The above guide is forcing BSEL 2 high, and leaving BSEL 1 as-is (low). This creates a base speed of 333MHz, which is multipled by 4 to create 1333MHz.

It is possible to set BSEL 1 and 2 both high, creating base speed 400MHz (FSB 1600MHz). 1333 and 1600MHz DDR3 modules are quite common for these machines, but currently scaled down to 1067MHz due to FSB limitation.

There is a table in some schematics, which specifies BSEL configurations for 667, 800 and 1067mhz, but nothing else. Intel is either being very conservative (higher speeds will cause higher temperatures) or it simply will not work (or it will, but it's unstable).

Nothing is known yet, because the current info is just from overclockers forums where people don't check anything, they just try it and success is: it doesn't melt.

Regarding coreboot compatibility:

Check src/northbridge/intel/gm45/raminit.c in coreboot, for the function read_fsb_clock and all functions pertaining to it. At present, coreboot will likely spit out an error and halt, so even if this mod could work, coreboot modification is probably required. Check all code pertaining to FSB (and calculation of delays) in coreboot northbridge code.

Coreboot code would have to be adjusted, based on the result of running read_fsb_clock.

Other considerations:

Temperature may be too high, since this is an overclock. If that is the case, it may be prudent to research undervolting.

The person who reported it working only did so with lenovobios, but lenovobios likely doesn't account for fsb1333 which is unsupported officially. Different raminit timings are needed for different FSB speeds. Coreboot accounts for different settings because it has portable code to be re-used on many boards, but lenovobios probably just accounts for the board configuration of say, a T400 for example, and hardcodes the correct logic for fsb1067. I'm probably right. Therefore, the hardware probably throttles to 1067mhz just as implied by Intel specs.

I'm expecting that the last paragraph will be correct, when I try this. This mod is probably futile. I think the person on that overclocking thread (linked above) was merely happy that it booted, but otherwise wrongly believed it to be a successful overclock. The hwclock util cna tell us (also, the machine would run hotter on a higher fsb speed).

See notes about BSEL: <https://www.overclockers.com/intel-lga775-pad-modding/> DO NOT actually do what's on this page, they recommend all kinds of insanity. However, it should be possible to FSB mod thinkpads. You pull BSEL 1 and 2 high or low (BSEL 0 should always be low), to get different speeds. Theoretically, GM45 can handle FSB 1333MHz, and maybe FSB 1600MHz. This guide says 1333MHz: <https://thinkpad-forum.de/threads/t500-und-t400-pinmod-f%C3%BCr-fsb-1333.182146/> The above guide is forcing BSEL 2 high, and leaving BSEL 1 as-is (low). This creates a base speed of 333MHz, which is multipled by 4 to create 1333MHz. It is possible to set BSEL 1 and 2 both high, creating base speed 400MHz (FSB 1600MHz). 1333 and 1600MHz DDR3 modules are quite common for these machines, but currently scaled down to 1067MHz due to FSB limitation. There is a table in some schematics, which specifies BSEL configurations for 667, 800 and 1067mhz, but nothing else. Intel is either being very conservative (higher speeds will cause higher temperatures) or it simply will not work (or it will, but it's unstable). Nothing is known yet, because the current info is just from overclockers forums where people don't check anything, they just try it and success is: it doesn't melt. Regarding coreboot compatibility: Check `src/northbridge/intel/gm45/raminit.c` in coreboot, for the function `read_fsb_clock` and all functions pertaining to it. At present, coreboot will likely spit out an error and halt, so even if this mod could work, coreboot modification is probably required. Check all code pertaining to FSB (and calculation of delays) in coreboot northbridge code. Coreboot code would have to be adjusted, based on the result of running `read_fsb_clock`. Other considerations: Temperature may be too high, since this is an overclock. If that is the case, it may be prudent to research undervolting. The person who reported it working only did so with lenovobios, but lenovobios likely doesn't account for fsb1333 which is unsupported officially. Different raminit timings are needed for different FSB speeds. Coreboot accounts for different settings because it has portable code to be re-used on many boards, but lenovobios probably just accounts for the board configuration of say, a T400 for example, and hardcodes the correct logic for fsb1067. I'm probably right. Therefore, the hardware probably throttles to 1067mhz just as implied by Intel specs. I'm expecting that the last paragraph will be correct, when I try this. This mod is probably futile. I think the person on that overclocking thread (linked above) was merely happy that it booted, but otherwise wrongly believed it to be a successful overclock. The hwclock util cna tell us (also, the machine would run hotter on a higher fsb speed).
ripvoid commented 2 years ago

I did a PLL-mod overclock of an x200. It was mostly a failure, but I'm happy to share what I learned.

I copied a PPL mod from one of the Chinese forums where you solder a wire from the PLL to a resistor and ground it, to force at 1333mhz FSB. The mod was 'successful' that I could boot, but I was unable to get the board stable. Here are some notes:

1) The board is a P8600, so going from 1066mhz FSB to 1333mhz FSB means the speeds change like this:

Ultra-low frequency mode: 800mhz -> 1ghz Low frequency mode: 1600mhz -> 2ghz Full power (non-IDA) 2.4ghz -> 3ghz. IDA - ?

2) You'll need to modify RAM timing if you hope to make the overclock stable, and it might even be required to boot at all. This can be done in a few ways:

A) Modify the SPD values stored in EEPROM on the ram stick.

A1) This can be done by booting a machine with the ram you want to modify, and flashing it in place. I did this using Windows + Typhoon Burner (Non-free software!) on an ASRock Pentium J3700 motherboard.

A2) You may be able to flash the EEPROM on the DIMM externally, but that's beyond my current abilities. If you don't want to use non-free software, this is probably what you'll need to do.

B) Modify Coreboot raminit to override the SPD in the ram stick. I investigated this, and theoretically it could be a better approach, but I wasn't able to figure it out. I'm not a Coreboot expert though.

3) My board still wasn't stable with the adjusted RAM timings. I can boot with Levovo BIOS or Libreboot 2016*, but only with 1 ram stick inserted. Memtest86 reports errors after 24 hours of testing in this config, but not many. Using 2 ram sticks causes immediate errors in memtest86. Swapping the ram sticks had the same results, so the issue is likely not the ram, but the motherboard/northbridge.

4) You need to handle a significant amount of additional heat. The stock 25-watt heat sink will cause the CPU to hit 99C and throttle (and therefore the overclock is pointless). The x200 has a 35-watt heatsink available (designed for the T9600 models), but it may be rare. I found one on ebay a few years ago, and that's what I'm using. It handles the extra heat well and prevents the throttling.

5) I can boot an OS with 1 ram stick, despite the instability. I confirmed I was running the x200 at 3ghz using benchmarks and confirming improved performance. Many of the standard Linux tools still showed it running at stock speeds, so finding a reliable utility to check true clockspeed can be difficult.

6) Due to the stability problems I had, even with many RAM combinations, I suspect my board was limited by northbridge stability. My understanding is the FSB overclock also affects much of the northbridge (including iGPU). In theory you could try to fix this by overvolting the northbridge but that is getting very difficult, and beyond what I was willing to try.

In summary, I don't think this mod is worth it. If someone is able to pull it off and get it genuinely stable, I'd love to hear about it! If you want to overclock, You're better off getting an x9100 or qx9300 and doing a software-controlled multiplier overclock on a T400 or T500.

I did a PLL-mod overclock of an x200. It was mostly a failure, but I'm happy to share what I learned. I copied a PPL mod from one of the Chinese forums where you solder a wire from the PLL to a resistor and ground it, to force at 1333mhz FSB. The mod was 'successful' that I could boot, but I was unable to get the board stable. Here are some notes: 1) The board is a P8600, so going from 1066mhz FSB to 1333mhz FSB means the speeds change like this: Ultra-low frequency mode: 800mhz -> 1ghz Low frequency mode: 1600mhz -> 2ghz Full power (non-IDA) 2.4ghz -> 3ghz. IDA - ? 2) You'll need to modify RAM timing if you hope to make the overclock stable, and it might even be required to boot at all. This can be done in a few ways: A) Modify the SPD values stored in EEPROM on the ram stick. A1) This can be done by booting a machine with the ram you want to modify, and flashing it in place. I did this using Windows + Typhoon Burner (Non-free software!) on an ASRock Pentium J3700 motherboard. A2) You may be able to flash the EEPROM on the DIMM externally, but that's beyond my current abilities. If you don't want to use non-free software, this is probably what you'll need to do. B) Modify Coreboot raminit to override the SPD in the ram stick. I investigated this, and theoretically it could be a better approach, but I wasn't able to figure it out. I'm not a Coreboot expert though. 3) My board still wasn't stable with the adjusted RAM timings. I can boot with Levovo BIOS or Libreboot 2016*, but only with 1 ram stick inserted. Memtest86 reports errors after 24 hours of testing in this config, but not many. Using 2 ram sticks causes immediate errors in memtest86. Swapping the ram sticks had the same results, so the issue is likely not the ram, but the motherboard/northbridge. 4) You need to handle a _significant_ amount of additional heat. The stock 25-watt heat sink will cause the CPU to hit 99C and throttle (and therefore the overclock is pointless). The x200 has a 35-watt heatsink available (designed for the T9600 models), but it may be rare. I found one on ebay a few years ago, and that's what I'm using. It handles the extra heat well and prevents the throttling. 5) I can boot an OS with 1 ram stick, despite the instability. I confirmed I was running the x200 at 3ghz using benchmarks and confirming improved performance. Many of the standard Linux tools still showed it running at stock speeds, so finding a reliable utility to check true clockspeed can be difficult. 6) Due to the stability problems I had, even with many RAM combinations, I suspect my board was limited by northbridge stability. My understanding is the FSB overclock also affects much of the northbridge (including iGPU). In theory you could try to fix this by overvolting the northbridge but that is getting very difficult, and beyond what I was willing to try. In summary, I don't think this mod is worth it. If someone is able to pull it off and get it genuinely stable, I'd love to hear about it! If you want to overclock, You're better off getting an x9100 or qx9300 and doing a software-controlled multiplier overclock on a T400 or T500.
Leah Rowe commented 1 year ago
Owner

upon my research, i found that these do nothing

it's possible to configure the hardware for the higher unsupported modes, but then it just wouldn't work

those lines on the board don't do anything on their own. the firmware reads those settings and sets timing accordingly

when using the unsupported modes, the highest supported mode is used on the hardware, and the vendor firmware just hardcodes the timings anyway. so the mod "works" on vendor firmware, in that it does nothing

coreboot doesn't hardcode. it sets timings accordingly, but (on this hardware) does not account for the unsupproted settings. adding such support would do nothing excetp make an improperly wired mainboard boot regardless of user's foolishness

closing the report

upon my research, i found that these do nothing it's possible to configure the hardware for the higher unsupported modes, but then it just wouldn't work those lines on the board don't do anything on their own. the firmware reads those settings and sets timing accordingly when using the unsupported modes, the highest supported mode is used on the hardware, and the vendor firmware just hardcodes the timings anyway. so the mod "works" on vendor firmware, in that it does nothing coreboot doesn't hardcode. it sets timings accordingly, but (on this hardware) does not account for the unsupproted settings. adding such support would do nothing excetp make an improperly wired mainboard boot regardless of user's foolishness closing the report
Sign in to join this conversation.
No Label
No Milestone
No assignee
2 Participants
Loading...
Cancel
Save
There is no content yet.