CPU Temperature Patch
Michael Schmitz
schmitz at opal.biophys.uni-duesseldorf.de
Thu Sep 21 06:15:27 EST 2000
> > > + /* this set for 500 MHz Pismo - how do we get access to clock?? */
> >
> > There is, in the same file, around line 319 code to read the clock speed from
> > the device tree. However, is it really necessary to include the clock speed at
> > this point? What is the drawback if we just assume 500 MHz (or even the max
> > value) for every G3 based machine?
>
> Why assume when we can do it properly? Besides, a friend of mine oc'ed his
> B&W to 550, so it's possible to have >500Mhz :)
Like this?
--- arch/ppc/kernel/setup.c.org Wed Sep 20 20:25:53 2000
+++ arch/ppc/kernel/setup.c Wed Sep 20 20:31:26 2000
@@ -197,6 +197,7 @@
unsigned int thresd;
unsigned int threst;
unsigned int i;
+ unsigned int cpu_freq;
othrm1 = _get_THRM1();
othrm2 = _get_THRM2();
@@ -208,9 +209,23 @@
/* we need 20us to do the compare - assume 300MHz processor clock */
/* max value for sitv is 0x3fff - or 16383 */
/* this set for 500 MHz Pismo - how do we get access to clock?? */
+
+ cpu_freq = 500;
+ if ( have_of )
+ {
+ struct device_node *cpu_node;
+ int *fp;
+
+ cpu_node = find_type_devices("cpu");
+ if ( cpu_node ) {
+ fp = (int *) get_property(cpu_node, "clock-frequency", NULL);
+ if ( fp ) cpu_freq = *fp / 1000000;
+ }
+ }
+
/* 25 usec conversion time - max for 500 Mhz is approx. 32 usec */
_set_THRM3(0);
- _set_THRM3(THRM3_E | THRM3_SITV(500*25) );
+ _set_THRM3(THRM3_E | THRM3_SITV(cpu_freq*25) );
thresd = 1 << 6;
threst = thresd;
Only tested on my Lombard ...
Michael
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list