Jump to content

Soft OCing for OS X  

23 members have voted

  1. 1. How many of you want this?

    • yes
      21
    • no
      3


10 posts in this topic

Recommended Posts

I'm working on Soft OCing for my HPDV6871us under OS X, and I'd like to gage if anyone else would care, and want to help.

 

NEEDED, Working SMBus Driver.

 

Anyone who likes to Hack out some C++.

 

Beta testers, any Desktop or Portable under the sun.

 

Also, under clocking to save Power/Heat.

I'd like to join but I only want to increase the fan speed of my 8800GT. My card is a factory overclocked one.

 

My hack is already a little bit overclocked too. My specs are on my sig.

 

Cheers!

 

This is FSB control via SMBus, the video card does not have much to do with it.

 

However, you are asking the correct person, I've not looked at fan control on GF8, but there should be two ways to control it.

 

1. In the Video Bios

 

2. Alter the Registers in RAM.

 

I'll look at the Code and see if way 2 can still be done.

 

Way 1 should work the best DownLoad this

 

First run /Graphiccelerator/Graphiccelerator 1.3.3a/NVIDIA Tools/NVIDIA ROM Dumper 1.1/Run Me First.app

 

Then run /Volumes/Graphiccelerator/Graphiccelerator 1.3.3a/NVIDIA Tools/NVIDIA ROM Dumper 1.1/NVIDIA ROM Dumper.app

 

Now post you videobios where it can be downloaded, and I'll see if it can be done.

WARNING, ANY OF THIS INFO COULD BURN DOWN YOUR HOUSE, KNOCK UP YOU DOG, OR KILL YOUR MAC/PC OR ANY PART OF IT!!!!!!!!!!!!!!!!!

 

I ONLY OFFER THE INFO, YOU DID IT, YOU DEAL WITH IT. :o

 

Ok, I looked it up, the GF8 seem to still have Fan speed control Registers.

/* NVClock 0.8 - Linux overclocker for NVIDIA cards
*
* site: http://nvclock.sourceforge.net
*
* Copyright(C) 2007 Roderick Colenbrander
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
static void g84_set_fanspeed(float speed)
{
int value;
int pwm_divider = nv_card->PMC[0xe11c/4] & 0x7fff;

/* For safety reasons we should never disable the fan by not putting it below 10%; further negative values don't exist;)  */
if(speed < 10 || speed > 100)
	return;

/* Bit31 must be set else the hardware doesn't seem to do anything with the changes
/  Bit30-16 contain some magical bits on 9500GT and other cards which we should preserve.
/  On a 9500gt the contents of 0xe120 could be e.g. 0x0300010e with a pwm_divider of 0x21d.
/
/  Note Oxe300 is also related to the fanspeed. By default it seems to contain 0x100 on
/  9600GT and other cards. Setting this value to 0x300 seems to set the fanspeed to a fixed
/  value. Apparently 0xe300 acts like a multiplexer?
*/
value = 0x80000000 | (nv_card->PMC[0xe120/4] & 0x7fff0000) | (((int)(100 - speed) * pwm_divider/100) & 0x7fff);
nv_card->PMC[0xe120/4] = value;

 

So, the Address 0xe11c is the pwm_divider and it is used to calulate a Fan Speed with the Value from 0xe120

 

If you want to toy with this:

 

Make sure you have Apples CHUD Tools.

 

/Developer/Applications/Performance Tools/CHUD/Hardware Tools/Reggie SE.app

 

In Reggie Click the PCI Tab->Under Device Choose VGA-compat*->Under Config Space Location put 0x10 in the Offset

Field Click 32-bit Width Click Edit.

 

A window will popup with a 32bit value for the Base Address Of you Nvidia Cards Control Registers.

0xCE000000

 

That is mine, yours with be 0xXX000000, where XX is your Base address, lets say for example XX = 96

 

0x96000000

 

Ok, now that you know the Base Address->Click PhysMem Tab->Ignor Location and goto Range.

 

Under Address 0xXX00e11c where XX = your base address( 0xCE00e11c for me )

 

Length 8 bytes

 

Width 32-bit

 

Stride UNChecked

 

Click Edit->A window will popup with 2 32-bit addresses and the values.

 

If you change the Data for 0xce00e120 to 0xFFFFFFFF and hit Refresh, your fan should go to full and the Data in e120 will tell you the Value of Full setup in you Video Bios.

 

Setting e120 to 0x00000000 should turn your fan OFF or to the lowest setting.

 

BEWARE, I could be WRONG, and your FAN MAY STOP AT ANY TIME, WATCH OUT!!!!!!!!!!

 

I could go on and on, but you'll have to ask if you want to know more.

geiman,

 

i'd be glad to have some help, when you have time.

 

I've been looking at the first step, getting a working SMBus Driver for OS X.

 

IOService:/AppleACPIPlatformExpert/PCI0/AppleACPIPCI/SBUS@1F,3/AppleSMBusPCI/BUS0@0/AppleSMBusControllerICH/RTM0

 

Also if any DSDT/AML gurus happen by,

 

Anyone know how to compile iAML with Lex/Flex support?

 

acpica-unix-20081031/compiler/aslcompiler.l <-------I need to use this to compile my DSDT with a bit of code I hacked in.

 

 OperationRegion(SMBD, SMBus, 0x6900, 0x100) // SMBus device at slave address 0x69
			Field(SMBD, BufferAcc, NoLock, Preserve)
			{
			AccessAs(BufferAcc, [color="#FF0000"]SMBSendReceive[/color]) 
			FLD0, 8		  // Virtual register at command value 0.

		   }
				   /* Create the SMBus data buffer */
			Name(BUFF, Buffer(34){})	   // Create SMBus data buffer as BUFF
			CreateByteField(BUFF, 0x00, STAT)	 // STAT = Status (Byte)
			CreateByteField(BUFF, 0x02, DATA)	 // DATA = Data (Byte)
						  /* Write the byte ‘0x67’ to the device using command value 0 */
			Store(0x67, DATA)   // Save 0x67 into the data buffer
			Store(BUFF, FLD0)   // Invoke a Write Byte transaction

 

SMBSendReceive<<---Gives an error, iasl does not understand, but that is defined in the aslcompiler.l.

 

I just don't understand how to pass this file to the compiler.

  • 4 weeks later...

I'm still working on this slowly, but it seems Apple is reading the FSB for the System Clock, so it maybe better to do Under/OverClocking before the Kernel Loads.

 

With some help, I've been able to Set the FSB of my HP DV6871us using a Module for Grub2 (setfsb.mod).

 

Then just ChainLoad Chameleon and Boot OS X, works great in 10.5.6 and 10.6.1, no Real Time Clock issues, however after sleep, on my system, it will revert to the HW set FSB.

 

I've gone from 167FSB @1823Mhz to 203FSB@2233Mhz on a T5550 Core2 (M), so 800Mhz / 25% faster CPU in threaded Apps. VisualHub Encoding 25% faster :rolleyes:

 

Also my ICH8M is linked/locked @667 DDR2 ram, so now 803Mhz, ram throughput is better.

 

So, if anyone that can't OverClock via Bios wants to give it a try..........................

  • 4 weeks later...
I'm still working on this slowly, but it seems Apple is reading the FSB for the System Clock, so it maybe better to do Under/OverClocking before the Kernel Loads.

 

With some help, I've been able to Set the FSB of my HP DV6871us using a Module for Grub2 (setfsb.mod).

 

Then just ChainLoad Chameleon and Boot OS X, works great in 10.5.6 and 10.6.1, no Real Time Clock issues, however after sleep, on my system, it will revert to the HW set FSB.

 

I've gone from 167FSB @1823Mhz to 203FSB@2233Mhz on a T5550 Core2 (M), so 800Mhz / 25% faster CPU in threaded Apps. VisualHub Encoding 25% faster :D

 

Also my ICH8M is linked/locked @667 DDR2 ram, so now 803Mhz, ram throughput is better.

 

So, if anyone that can't OverClock via Bios wants to give it a try..........................

 

 

I am very interested in this. Especially the potential for overclocking my Nvidia card/cards in OSX (don't care much for changing the fan speed) :)

  • 1 month later...
×
×
  • Create New...