We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I have examined "cpuidle" procedure for ARM JUNO board with different idle states. My question is related to idle states which will cause the CPU core to suspend itself. I am familiar with properties under "idle-state" device tree node.
Example below.
taken from linux dts file [juno.dts]
based on commit: 102340
Date: Wed Mar 18 17:17:13 2015 +0000
arm64: dts: Add idle-states for Juno
Signed-off-by: Jon Medhurst <tixy@linaro.org>
from JUNO linux-kernel repository
So, Linux will at some point (when it satisfies all the latencies above) call PSCI suspend function, with "psci-suspend-param" as an argument.. That will propagate to the ATF (EL3) software layer and at the end will notify PMU (Cortex M3) to set new power state for the particular core. (scpi_set_css_power_state(..)).
But before invoking that call, all interrupts (at GIC level) are disabled.
"
arm_gic_cpuif_deactivate();
So, I am wondering, how Linux will wake-up core again? All interrupts are disabled.
Thanks,
A.