Subject: IBM PowerPC 750FX
To: None <port-powerpc@netbsd.org>
From: Matthias Kretschmer <mccratch@gmx.net>
List: port-powerpc
Date: 10/20/2002 18:18:02
Hello!
Don't know if somebody already tried to do this, but the 750FX has the
capability to change it's clockspeed (of the core itself using
multipliers and the bus-speed) at runtime. The cpu is for example used
in the iBook (at least the 2002). The steps for implementing it a very
easy at least on the iBook:
The 750FX utilizes two PLLs to drive the clock speed. At one time only
one is selected. PLL0 can be driven from external clock, PLL1 is
internal only. The trick is, that the PLL0 and PLL1 are initialized
with PLL0 to external clock and PLL1 for low power mode (so this is on
the only box with this CPU I could check - I also checked some sources
for other operating systems, which in seem to rely on this too, but
maybe someone else with check this). So by simply changing the PLL the
CPU is placed in low power mode. Works nice with 1.6 release I used for
testing it.
PLL0 or PLL1 are selected by bit 15 of the HID1 register (SPR 0x3f1).
I also disabled BHT by changing the BTIC bit in the HID0 register, this
is assumed to save another bit of power (some SYNCs/ISYNCs have to be
placed before and after the HID0 change for this).
The current implementation is a bit ugly, but if there is some interest
I could do a cleaned up implementation (currently I use a device and a
small utility to change the cpu modes) or give someone the current code
for playing.
--
Greetings
Matthias Kretschmer