[U-Boot] [PATCH] armv8: Flush dcache before switching to EL2
Albert ARIBAUD
albert.u.boot at aribaud.net
Mon Apr 7 22:23:44 CEST 2014
Hi York,
On Mon, 31 Mar 2014 14:40:32 -0700, York Sun <yorksun at freescale.com>
wrote:
> For ARMv8, U-boot has been running at EL3 with cache and MMU enabled.
> Without proper setup for EL2, cache and MMU are both disabled (out of
> reset). Before switching, we need to flush the dcache to make sure the
> data is in the main memory.
>
> Signed-off-by: York Sun <yorksun at freescale.com>
> ---
> arch/arm/lib/bootm.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> index a8295bf..9782ddb 100644
> --- a/arch/arm/lib/bootm.c
> +++ b/arch/arm/lib/bootm.c
> @@ -199,6 +199,7 @@ static void do_nonsec_virt_switch(void)
>
> #ifdef CONFIG_ARM64
> smp_kick_all_cpus();
> + flush_dcache_all(); /* flush cache before swtiching to EL2 */
> armv8_switch_to_el2();
> #ifdef CONFIG_ARMV8_SWITCH_TO_EL1
> armv8_switch_to_el1();
Applied as a bugfix to u-boot-arm/master, thanks!
Amicalement,
--
Albert.
More information about the U-Boot
mailing list