create a common ARM flush_icache function
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
bdb4093d3d
commit
d5b6012ac1
|
@ -29,6 +29,7 @@
|
|||
#include <asm-generic/memory_layout.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/pgtable.h>
|
||||
#include <asm/cache.h>
|
||||
|
||||
#include "mmu.h"
|
||||
|
||||
|
@ -139,8 +140,7 @@ static void barebox_uncompress(void *compressed_start, unsigned int len)
|
|||
if (use_mmu)
|
||||
mmu_disable();
|
||||
|
||||
/* flush I-cache before jumping to the uncompressed binary */
|
||||
__asm__ __volatile__("mcr p15, 0, %0, c7, c5, 0" : : "r" (0));
|
||||
flush_icache();
|
||||
|
||||
barebox();
|
||||
}
|
||||
|
@ -199,8 +199,7 @@ copy_link:
|
|||
/* 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));
|
||||
flush_icache();
|
||||
|
||||
r = (unsigned int)&barebox_uncompress;
|
||||
/* call barebox_uncompress with its absolute address */
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <asm/barebox-arm-head.h>
|
||||
#include <asm-generic/memory_layout.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/cache.h>
|
||||
|
||||
#ifdef CONFIG_PBL_IMAGE
|
||||
/*
|
||||
|
@ -80,8 +81,7 @@ 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));
|
||||
flush_icache();
|
||||
|
||||
/* call start_barebox with its absolute address */
|
||||
r = (unsigned int)&start_barebox;
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef __ASM_CACHE_H
|
||||
#define __ASM_CACHE_H
|
||||
|
||||
static inline void flush_icache(void)
|
||||
{
|
||||
asm volatile("mcr p15, 0, %0, c7, c5, 0" : : "r" (0));
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue