diff options
Diffstat (limited to 'arch/arm/cpu/start.c')
-rw-r--r-- | arch/arm/cpu/start.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c index ede8fd1f09..0fcc950979 100644 --- a/arch/arm/cpu/start.c +++ b/arch/arm/cpu/start.c @@ -135,6 +135,9 @@ void __naked __section(.text_ll_return) board_init_lowlevel_return(void) /* clear bss */ memset(__bss_start, 0, __bss_stop - __bss_start); + /* flush I-cache before jumping to the copied binary */ + __asm__ __volatile__("mcr p15, 0, %0, c7, c5, 0" : : "r" (0)); + /* call start_barebox with its absolute address */ r = (unsigned int)&start_barebox; __asm__ __volatile__("mov pc, %0" : : "r"(r)); |