Yong,

Idea of defining various C states is to get maximum power savings both
active and inactive usecases.
C states you defined below are definitely good as a starting point.
May be you can define more C states by adding more granularity
depending on what are controlled as part of CPUIdle.
Eg: In OMAP, we have defined C states primarily based on MPU and Core
States as they are controlled in CPUIdle.
MPU supports ON, INACTIVE, RETENTION and OF state and similarly the
Core. So C states are defined based on various MPU and Core state
combinations (MPU INACTIVE - CORE ACTIVE, MPU RET - CORE RET etc).

Vishwa


On Mon, Jan 31, 2011 at 3:17 PM, Yong Shen <yong.s...@linaro.org> wrote:
> Hi there,
> I am trying to implement cpuidle driver for imx51, and for better
> understanding how various c-state map to ARM soc,
> I would like to get some comments.
> First of all, we basically have 3 major state for imx51, which are defined
> in specification of the soc. Like:
> RUN - Core is active, clocks are on, the peripheral modules required are
> active. SW can close
> clocks of modules that are not in use. In addition CCM can enable power
> gating for the modules described above.
> WAIT - Core is disabled and clock gated, bus clocks to peripherals can be on
> as required. PG [power gating] and
> SRPG[state retention PG] can be applied to Cortex_A8 and the different
> blocks as described on the section above.
> STOP - Core is disabled, peripherals are disabled, bus clocks are off, PLLs
> off. PG and SRPG can
> be applied to Cortex_A8 and the different blocks as described on the section
> above.
> Naturely, I think the maping can be:
> RUN - c0
> WAIT - c1
> STOP - c2
> Or, if possible, some extra states can be assert into each c-state to get
> c3, c4....
> Since other SOCs, like omap or samsung's chip, already have cpuidle driver,
> I would like to especially compare imx51 with those.
> thanks
> Yong

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to