On Wed, Nov 14, 2012 at 02:21:59PM -0800, Tony Lindgren wrote:
> No idea if assuming that zero value for the diagnostic register
> is safe.. What's the default value of the diagnostic register supposed
> to be?

No, that's not safe.  What if your pre-kernel code has asked the secure
monitor to set the work-around bit already?

>  #if defined(CONFIG_ARM_ERRATA_751472) && defined(CONFIG_SMP)
>       ALT_SMP(cmp r6, #0x30)                  @ present prior to r3p0
>       ALT_UP_B(1f)
> -     mrclt   p15, 0, r10, c15, c0, 1         @ read diagnostic register
> -     orrlt   r10, r10, #1 << 11              @ set bit #11
> -     mcrlt   p15, 0, r10, c15, c0, 1         @ write diagnostic register
> +     bge     1f                              @ not needed for r3p0 and later
> +     mrc     p15, 0, r10, c15, c0, 1         @ read diagnostic register
> +     teq     r10, #0                         @ zero for secure mode?
> +     beq     1f                              @ bail out for secure mode

This test for zero is pointless.  What if some other work-around has
been enabled but not this one?

> +     tst     r10, #1 << 11                   @ bit #11 already set?
> +     orreq   r10, r10, #1 << 11              @ set bit #11 if not set
> +     mcreq   p15, 0, r10, c15, c0, 1         @ write diagnostic register
>  1:
>  #endif
>  
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to