ARM diagnostic register across suspend/resume
Will Deacon
will.deacon at arm.com
Tue Jun 17 03:21:23 PDT 2014
On Tue, Jun 17, 2014 at 11:16:06AM +0100, Russell King - ARM Linux wrote:
> On Tue, Jun 17, 2014 at 10:57:29AM +0100, Will Deacon wrote:
> > On Tue, Jun 17, 2014 at 09:31:18AM +0100, Shawn Guo wrote:
> > > Hi Will, Catalin,
> > >
> > > The CP15 diagnostic register holds some bits for ARM errata workaround.
> > > Since core gets power gated across suspend/resume cycle, these bits will
> > > get lost along the way. Is it okay for errata workaround to continue
> > > working after suspend, or do we have to save/restore diagnostic register
> > > to keep workaround effective?
> >
> > I'm not sure that saving/restoring the diagnostic register on A9 actually
> > works at all (I seem to remember some bits always read as zero?).
>
> If that's true, then we have a problem. We always read-modify-write
> this register when enabling work-arounds. If it always reads as
> zero, then enabling a subsequent work-around will disable the
> previous work-around.
I think that actually works ok, because writing zeroes doesn't actually
do anything as far as I understand. The problem with suspend/resume is
that the suspend/resume cycle could well clear the internal state and
writing zeroes won't re-enable the workaround bits.
I'll double-check this with the hardware guys, since this register really
is undocumented.
Will
More information about the linux-arm-kernel
mailing list