WARNING: FSB Overclocking means higher operating temperature. Observe decent cooling precautions. I take no responsibility for any damage. User beware.
INFO: Overclocking the 2510P using grub2 bootloader
Can overclock starting at grub2 bootloader which maintains the faster speed independently of whatever operating systems you are booting into. Eg: OSX. See
here for instructions. Using this method means steps 1-3 below for Linux are redundant. Step4 and Step5 can be used to maintain the overclocked state after resume-from-standby using the standalone binary.
INFO: Overclocking the 2510P in Linux
See kecap's update here on how to get this to work on the most recent Linux kernels.
Warning: O/C can damage components, observe cooling precautions. Summarizing from
SoftFSB OCing 4 Linux (Dev) thread
here and
here.
The steps required to successfully overclock a 2510P's ics9lprs355 PLL in Linux are below. This was tested on my 9.04 Jaunty system. Previously I needed to boot into Windows, run setfsb, then warm boot into Linux to overclock. Steps below could be applied to other systems, modifying the system specific parameters in (1) and (2). Combing the overclock with Xorg Intel 2.9.0 X3100 driver results in noticably brisker graphics response. I found the overclock needed to be done after the wifi radio had been turned on otherwise the wifi card failed to initiate. So rather than use init scripts, I overclock via /etc/gdm/PostLogin/Default.
1. Enable SMBUS to allow communication with the PLL
The 2510P bios disables the ICH8M SMBus. Enable it by setting bit 3=0 at RCBA+3418H (Function Disable register). RCBA is stored at 0/31/0 F0-F3h. So can identify the RCBA address with a setpci (Linux) or Baredit (Windows).
Code:
$ setpci -s 0:1f.0 f0.l
fed90001
RCBA=FED90001 on the 2510P. "read_dword 0xFED93418" in grub2's commandline tells me the bios set value of the Function Disable is 0x33C000D. The rightmost digit 0xD=1101 (bit3:0). So we want 0x5=0101. Three ways 0x33C0005 can be written to the 0xFED93418, the first being the simplest.
(i) Download and install grub2 1.94b3 or newer and place the following entry in your Linux boot menuitem. grub2 replaces legacy grub in Ubuntu 9.10 (Karmic Koala).
/boot/grub/grub.cfg
Code:
write_dword 0xFED93418 0x33C0005
(ii) Or use the
DIY ViDock DOS bootdisk supplied with pt.exe, and do the write using 'pt MEM write 4 0xFED93418 0x33c0005' , then chainload Linux using the supplied grub4dos by running 'grub'.
(iii) Or recompile the kernel doing the equivalent memory write in kernel code.
You'll know when this has been successfully implemented as the SMBus device will appear on lspci output:
Code:
$ lspci | grep -i smbus
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
2. Install lfsb with 2510P's ics9lprs355 PLL support
Download
lfsb-ics9lprs355.tgz. It has a lfsb precompiled x86 binary. Can also compile it yourself by downloading
lfsb-0.4.1, extracting it and copying the lfsb-ics9lprs355.tgz files over the lfsb source and then 'make' it.
Copy lfsb into the path /usr/local/bin
3. Test overclocking
NOTE: lfsb does not show the correct CPU frequency in the examples below.
Test overclocking with one of the following frequencies: 133 142 150 158 167 175. I use 167 (ie: 1.2Ghz -> 1.5Ghz), checking the faster glxgears response with the faster FSB.
Code:
# glxgears
3141 frames in 5.0 seconds = 628.014 FPS
3144 frames in 5.0 seconds = 628.709 FPS
3149 frames in 5.0 seconds = 629.635 FPS
^C
# modprobe i2c_dev
# modprobe i2c_i801
# lfsb -y ics9lprs355 167
-------------------------------------------------------------
CPU frequency : 17.32 MHz (estimated)
PLL ics9lprs355 is supported.
-------------------------------------------------------------
Changing to:
FSB=167 MHz
FSB frequency changed.
-------------------------------------------------------------
CPU frequency : 34.02 MHz (estimated)
FSB=167 MHz
-------------------------------------------------------------
# glxgears
3938 frames in 5.0 seconds = 787.588 FPS \
3930 frames in 5.0 seconds = 785.827 FPS -- Improved rendering speed
3922 frames in 5.0 seconds = 784.286 FPS /
4. Add overclock to be automated on startup
If overclocking is stable, add to be automatically started up:
/etc/modules
Code:
# wifi - before the i2c drivers
iwlagn
# Add i2c modules to be able to communicate with the PLL for overclocking
i2c_dev
i2c_i801
/etc/gdm/PostLogin/Default
Code:
# Overclock 2510P from 133->167 FSB
/usr/local/bin/lfsb -y ics9lprs355 167
5. Add overclock upon resume-from-standby or resume-from-hibernate
Create script as shown below. For unknown reason I can only overclock up to 150Mhz FSB after a resume. 158Mhz results in video garbage and system hanging.
/etc/pm/sleep.d/02overclock
Code:
#!/bin/bash
case $1 in
hibernate)
;;
suspend)
;;
resume|thaw)
# need to re-init the i2c bus after a resume
modprobe -r i2c-dev; modprobe i2c-dev
modprobe -r i2c-i801; modprobe i2c-i801
# 158 freezes the video after standby.. 150 is still OK
/usr/local/bin/lfsb -y ics9lprs355 150
;;
*)
;;
esac