• Lorenzo Pieralisi's avatar
    arm64: add PSCI CPU_SUSPEND based cpu_suspend support · 18910ab0
    Lorenzo Pieralisi authored
    This patch implements the cpu_suspend cpu operations method through
    the PSCI CPU SUSPEND API. The PSCI implementation translates the idle state
    index passed by the cpu_suspend core call into a valid PSCI state according to
    the PSCI states initialized at boot through the cpu_init_idle() CPU
    operations hook.
    
    The PSCI CPU suspend operation hook checks if the PSCI state is a
    standby state. If it is, it calls the PSCI suspend implementation
    straight away, without saving any context. If the state is a power
    down state the kernel calls the __cpu_suspend API (that saves the CPU
    context) and passed the PSCI suspend finisher as a parameter so that PSCI
    can be called by the __cpu_suspend implementation after saving and flushing
    the context as last function before power down.
    
    For power down states, entry point is set to cpu_resume physical address,
    that represents the default kernel execution address following a CPU reset.
    Reviewed-by: default avatarAshwin Chaugule <ashwin.chaugule@linaro.org>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    18910ab0
psci.c 12.8 KB