Hello,
I'm trying to find the relation between the cpuidle in Linux to the HW behaviour.
For example, let's assume there is a single process which only does as following:
while(1)
{
//do something
printf("C");
sleep(1); // edited 16.10. was written here by mistake mdelay(1000);
}
1) If I am using retention as the lowest idle state, should I expect the system to get into retention (C5 state for MPU+CORE in retention) for 1 seconds and then wake-up to Active state (C1 state) for a short time (printf) and return back to idle for 1 seconds, etc ?
2) mdelay command is a software delay, so what is the wakeup source ?
3) Another thing, when will the cpuidle shall succeed in changing to low idle mode , i.e. What is the meaning of "does not require a clock" below ?
"When a group of modules belonging to a clock domain in a power domain does not require a clock
(interface or functional), the PRCM module can be programmed to automatically cut the clock to these
modules, thereby reducing their power consumption. The PRCM module can then switch the power
domain to low-power retention or off mode to ensure minimum power consumption. When all clocks in a
domain are cut, the domain is idle." (OMAP35X TRM)
4) For example the core power domain contains dss (display) , and a picture is now being displayed. Does it mean the cpuidle won't succeed in getting to low power mode (MPU retention +CORE retention) ?
Thanks,
Ran