Thread (5 messages) flat view 5 messages, 3 authors, 2008-07-07

Re: Support for low power mode for powerpc processors

From: Josh Boyer <hidden>
Date: 2008-07-07 15:31:12

On Fri, 04 Jul 2008 09:42:51 +1000
Benjamin Herrenschmidt [off-list ref] wrote:
On Thu, 2008-07-03 at 12:52 -0700, prodyut hazarika wrote:
quoted
But a lot of SoC like 440GT/EX support two modes of power save -
- Cut off power to other cores like PCIExpress/USB/MAC/UART etc
- Lower the CPU frequency

Is it possible to scale down CPU freq or cut off power to unused cores
while the CPU is idle? The ideal way would be that the SoC registers a
set of handlers to the Kernel that can power off/up the SoC components
or reduce/restore CPU frequency. Does any such framework exist for
PowerPC processors, because most PowerPC based SoC (FreeScale/AMCC
etc) support the above two modes of power save.
Cutting off power to individual cores should be done by the drivers for
those cores (let's call the devices). For example, the USB driver could
cut of power when nothing is connected, though I'm not sure if it can do
that without losing the ability to detect new connections, but then, USB
has a suspend state that should make it mostly unnecessary. For the
UART, you may lose the ability to receive.

At the end of the day, if you don't use at all a core, disable it from
your firmware and set it as unused in the device-tree.
Right.

To answer the "can the CPU frequency be scaled" question, the answer is
"maybe".  You certainly want to make sure that timebase stays constant
in those transitions, which is easiest to do if timebase is driven by
an external clock and not the CPU clock.

There are also PLB/OPB divisor ratios that have to be taken into
account when changing the CPU frequency.  If the hardware can handle
this for you, then it should work well enough.  I know of at least one
4xx chip that has had CPU frequency scaling working.

If you pursue this at all, you will want to do it as a cpufreq driver.
That will allow you to use the generic cpufreq infrastructure in the
kernel, including the governors.

josh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help