Changes

Jump to: navigation, search

NELK Power Management

64 bytes removed, 15:26, 16 January 2013
m
Runtime Power Management Support
# DSP, HDVICP2 and CORE (which put together HDVPSS, dual Cortex M3 and L3 bus) PM
The main difference between the two is that the Linux kernel itself knows pretty well how much the A8 is loaded at a given time (due to the fact that it's the kernel that schedules its processes). Having a configurable CPU governor is a standard feature of Linux kernel, that can be found on PCs and laptops. The Kernel changes A8 frequency/voltage in accordance with user settings.
All other subsystems (DSP, HDVICP2 and CORE) are not managed directly by the kernel (e.g. dual M3 run their own independent RTOS), for this reason it cannot choose the optimal working set from a PM point of view. Choosing the correct OPP (Operating Performance Points) is userspace application's responsibility to obtain the desired result (eg. Full-HD H264 encoding vs 720p H264 decoding).
=== CPU Governor Usage ===
CPU governor is a standard feature of recent Linux Kernels. The kernel itself selects the best working point depending on CPU load. User can choose select between various predefined governors or choose the working frequency himself. In the latter configuration the kernel will only select the best allowed OPP from the frequency chosen by the user. Please note that this allows the Cortex-A8 to be treated like the rest of the PM subsystem (DSP, CORE, HDVICP2) thus allowing direct OPP setup (see next section).
Pre-configured governors are the ones listed in the following table:
=== Manually choosing working frequencies ===
To have a more in-depth control over power management and performance, [[Category:Naon|Naon]] PM driver allow allows the user to specify the frequency for each configurable clock known to by the Linux Kernel.
{{WarningMessage|text=Please note that changing frequency will also require a power supply change, to have a stable system. However changing Changing power supply is a critical issue for the module and may damage it permanently. For this reason [[Category:Naon|Naon]] PM driver allow allows the user to customize only the frequency and not power supply, which is automatically adjusted by choosing the right appropriate OPP}}
Naon PM driver can manage a list of clocks and configure, for each of them:
We will look only at the former, while the latter will be detailed in the ''Standby'' section of this article.
First of all, the user should find the correct clock name, e.geg. by looking inside ''/sys/kernel/debug/clock'' (DEBUGFS must be enabled and mounted). We will suppose that the user wants to configure HDVPSS (and thus M3) frequency, which is derived from ''iss_dpll_ck'' PLL (only PLL are configurable, of course).
Now the user has to ''add'' the chosen clock to the list managed by Naon PM driver:
Please note the usage of '''-n''' (to skip the new line usage of echo command) and the '''+''' added to the clock name.
Clock removal from list can be done by changing ''+'' with ''-'', e.geg.
<pre>
</pre>
Before use using the clock, this it must be selected between all the one that are inside from the list
<pre class="board-terminal">
</pre>
User can now query read the current frequency value:
<pre class="board-terminal">
</pre>
Setting the frequency is just a matter of writing its value, in MHzHz, into the same sysfs entry:
<pre class="board-terminal">

Navigation menu