[PATCH 2/3] powerpc/85xx: Provide two functions to save/restore the core registers
Scott Wood
scottwood at freescale.com
Wed Jan 15 10:50:56 EST 2014
On Tue, 2014-01-14 at 15:59 +0800, Dongsheng Wang wrote:
> From: Wang Dongsheng <dongsheng.wang at freescale.com>
>
> Add fsl_cpu_state_save/fsl_cpu_state_restore functions, used for deep
> sleep and hibernation to save/restore core registers. We abstract out
> save/restore code for use in various modules, to make them don't need
> to maintain.
>
> Currently supported processors type are E6500, E5500, E500MC, E500v2 and
> E500v1.
>
> Signed-off-by: Wang Dongsheng <dongsheng.wang at freescale.com>
What is there that is specfic to a particular core type that can't be
handled from C code?
> + /*
> + * Need to save float-point registers if MSR[FP] = 1.
> + */
> + mfmsr r12
> + andi. r12, r12, MSR_FP
> + beq 1f
> + do_sr_fpr_regs(save)
C code should have already ensured that MSR[FP] is not 1 (and thus the
FP context has been saved).
> +/*
> + * r3 = the virtual address of buffer
> + * r4 = suspend type, 0-BASE_SAVE, 1-ALL_SAVE
#define these magic numbers, and define what is meant by "base save"
versus "all save".
-Scott
More information about the Linuxppc-dev
mailing list