Subject: Re: Cpu frequency scaling

From: Ralf Baechle <[email-masked]>
Date: Sun, 12 Jan 2003 18:09:17 +0100

On Sun, Jan 12, 2003 at 08:20:05PM +0530, Krishnakumar. R wrote:

> Can frequency scaling (through software) 
> be done on mips using linux ?
> 
> Is  such a feature feasible in mips ??
> 
> I could not find any documentation nor patches 
> for  frequency
> scaling on mips at 
> http://www.brodo.de/cpufreq/
> :-(

None of the currently supported MIPS CPUs support such a feature in
hardware as such our support is already complete and by definition
bug free ;-)

  Ralf

---

From: "Kevin D. Kissell" <[email-masked]>
Date: Sun, 12 Jan 2003 20:01:02 +0100

> hardware as such our support is already complete and by definition

Actually, that's not *quite* true.  A number of MIPS CPUs and
cores that are otherwise supported by Linux (e.g. 4K, 5K) have
a "reduced power" mode which is modulated by the CP0 "RP"
bit. In general, this bit does nothing in the CPU itself, however.
It was intended that it be connected to system-level logic for
frequency scaling (1/n normal clock, or CPU=Bus).  So on
most systems it does nothing, and on the ones where it does
do something, it's entirely system dependent.  I don't have an
Alchemy AU1000 spec handy, but since they've integrated
a lot of other logic with their CPU, and since they designed
their component to go into low-power devices, it wouldn't
surprise me in the least if they do something well-defined
with the RP bit.

So, to get back to the original question, something highly
platform dependent *could* be done using MIPS/Linux, 
via /proc/cpu or some kind of system call, but I don't believe 
anyone has made such a hook generally available as yet.

            Kevin K.

---

From: Pete Popov <[email-masked]>
Date: 12 Jan 2003 20:15:34 -0800

> surprise me in the least if they do something well-defined

Actually the Au1x CPUs support both, frequency and voltage scaling.

> anyone has made such a hook generally available as yet.

For the Au1x CPUs, I had added a /proc interface that allows you to do something
like "echo 192 > /proc/cpufreq" to reduce the frequency from 396 MHz to 192,
or whatever number you chose, but the implementation was very adhoc and
probably not generally useful for other CPUs.  IBM and MontaVista recently 
published a whitepaper on power management that's designed to be arch 
independent. The design considers not only CPU scaling but scaling of all the 
buses as well, which I don't think the cpufreq project takes into account.

Pete