Subject: ARM diagnostic register across suspend/resume

From: [email-masked] (Shawn Guo)
Date: Tue, 17 Jun 2014 21:08:28 +0800

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?).
> 
> Anyway, I'd expect the state could be lost, so you'd need to reprogram
> the diagnostic register rather than save/restore its value.

Yes, we observed that diagnostic state gets lost after suspend.  But
per my testing I can see the effectiveness of errata workaround
preserves.  Is this expected somehow or something wrong in my testing?

Shawn