Here are the revised RFCs that attempts to state the problems, reasons
and solutions more clearly Thanks to Dan for spending a lot of time
with me in making it right.
(It was a challenge to put things into all-text. There are ascii
diagrams that Linux based email clients would handle correctly when
configured to read as Plain Text. In Outlook, you would need to select
"Rich Text" which will allow selecting a fixed font like Courier.)
Problem Statement:
Create a common set of terminology to use across architectures for
Zephyr discussions on power management.
Why is this a problem:
Different terms used across architectures without clarification of what
it means and how each impacts the system.
What should be done:
Create a common proposed terminology as defined below.
Terminology:
*PMA* - Shortened form for Power Management Application, the system
integrator provided application that maintains any power management
policies and enforces action upon them.
*LPS* - Any of the CPU low power states supported by the processor.
Generally the one saving most power.
Arch Independent Power States:
On X86:
*Active* - The CPU is currently active and running in the hardware defined
C0
*Idle* - The CPU is not currently active, and continues to be powered on.
The CPU may be in one of any lower C-state d(i.e. C1, C2, etc).
*Deep Sleep* - Core voltage rail and system clock turned off. RAM
retained.
On ARM:
*Active* - The CPU is currently active and running
*Idle* - Stops the processor clock. The ARC documentation describes this
as Sleep.
*Deep Sleep* - Stops the system clock and switches off the PLL and flash
memory. RAM retained.
On ARC:
*Active* - The CPU is currently active and running in the SS0 state
*Idle* - Defined as the SS1 state, with the core clock gated.
*Deep Sleep* - Defined as the SS2 state, entered via SLEEP command, gates
timers, clock complex, and peripherals. RAM retained.