On Tue, 2014-01-14 at 21:30 -0600, Wang Dongsheng-B40534 wrote: > > > -----Original Message----- > > From: Wood Scott-B07421 > > Sent: Wednesday, January 15, 2014 7:51 AM > > To: Wang Dongsheng-B40534 > > Cc: b...@kernel.crashing.org; Zhao Chenhui-B35336; an...@enomsg.org; > > linuxppc- > > d...@lists.ozlabs.org > > Subject: Re: [PATCH 2/3] powerpc/85xx: Provide two functions to > > save/restore the > > core registers > > > > On Tue, 2014-01-14 at 15:59 +0800, Dongsheng Wang wrote: > > > From: Wang Dongsheng <dongsheng.w...@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.w...@freescale.com> > > > > What is there that is specfic to a particular core type that can't be > > handled > > from C code? > > > > In the context of the calling, maybe not in C environment.(Deep sleep without > C environment when calling those interfaces)
Could you provide a concrete example? > > > + /* > > > + * 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). > > > > Yes, right. But I mean if the FP still use in core save flow, we need to save > it. > In this process, i don't care what other code do, we need to focus on not > losing > valuable data. It is not allowed to use FP at that point. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev