[U-Boot] [PATCH] ARM: cache-cp15: Make sure EAE is not enabled

Sjoerd Simons sjoerd.simons at collabora.co.uk
Thu Apr 30 09:23:03 CEST 2015


+Albert, +Marek,

On Tue, 2015-04-28 at 14:21 +0200, Tomeu Vizoso wrote:
> This could happen if we are being chainloaded by Coreboot with LPAE
> enabled, as is the case on the Tegra-based Chromebooks.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>

From the documentation of recent ARM cores it looks like 0 is the reset
value for that register, so explicitly ensuring it has that value seems
sane. I'm wary of giving a reviewed-by though as i don't know that part
of u-boot well enough to say it's the right spot.

However, as we're now using successfully using a Nyan big board with
this u-boot patch in kernelci[0] i can happily say:

Tested-By: Sjoerd Simons <sjoerd.simons at collabora.co.uk>

0: http://kernelci.org/boot/tegra124-nyan-big/


> ---
>  arch/arm/lib/cache-cp15.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c
> index 0291afa..78fb429 100644
> --- a/arch/arm/lib/cache-cp15.c
> +++ b/arch/arm/lib/cache-cp15.c
> @@ -96,6 +96,10 @@ static inline void mmu_setup(void)
>  		dram_bank_mmu_setup(i);
>  	}
>  
> +	/* Make sure EAE is not enabled */
> +	asm volatile("mcr p15, 0, %0, c2, c0, 2"
> +		     : : "r" (0) : "memory");
> +
>  	/* Copy the page table address to cp15 */
>  	asm volatile("mcr p15, 0, %0, c2, c0, 0"
>  		     : : "r" (gd->arch.tlb_addr) : "memory");




More information about the U-Boot mailing list