[U-Boot] [PATCH] arm64: zero cntvoff_el2

Albert ARIBAUD albert.u.boot at aribaud.net
Mon Jun 9 10:26:20 CEST 2014


Hi Mark,

On Wed, 21 May 2014 14:29:23 +0100, Mark Rutland <mark.rutland at arm.com>
wrote:

> Currently cntvoff_el2 is initialised with an arbitrary bag of bits
> derived from the initial value of cnthctl_el2 on the current CPU. This is
> somewhat odd and problematic as some of these bits are UNKNOWN at reset
> and may differ across CPUs (which may cause an OS at EL1 to observe time
> going backwards across CPUs).
> 
> This patch instead initialises cntvoff_el2 with xzr, giving the register
> a consistent value of zero on all CPUs.
> 
> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> Acked-by: Marc Zyngier <marc.zyngier at arm.com>
> Acked-by: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Scott Wood <scottwood at freescale.com>
> Cc: David Feng <fenghua at phytium.com.cn>
> Cc: Tom Rini <trini at ti.com>
> ---
>  arch/arm/cpu/armv8/transition.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/cpu/armv8/transition.S b/arch/arm/cpu/armv8/transition.S
> index e0a5946..38dea5c 100644
> --- a/arch/arm/cpu/armv8/transition.S
> +++ b/arch/arm/cpu/armv8/transition.S
> @@ -43,7 +43,7 @@ ENTRY(armv8_switch_to_el1)
>  	mrs	x0, cnthctl_el2
>  	orr	x0, x0, #0x3		/* Enable EL1 access to timers */
>  	msr	cnthctl_el2, x0
> -	msr	cntvoff_el2, x0
> +	msr	cntvoff_el2, xzr
>  	mrs	x0, cntkctl_el1
>  	orr	x0, x0, #0x3		/* Enable EL0 access to timers */
>  	msr	cntkctl_el1, x0

Applied as a bug fix to u-boot-arm/master, thanks!

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list