On Sun, 2003-01-12 at 11:01, Kevin D. Kissell 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 ;-)
> 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.
Actually the Au1x CPUs support both, frequency and voltage scaling.
> 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.
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.