diff options
Diffstat (limited to 'arch/arm/lib')
| -rw-r--r-- | arch/arm/lib/relocate.S | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/arch/arm/lib/relocate.S b/arch/arm/lib/relocate.S index 949b9e802..cd2bab6cd 100644 --- a/arch/arm/lib/relocate.S +++ b/arch/arm/lib/relocate.S @@ -70,6 +70,15 @@ fixnext:  relocate_done: +#ifdef __XSCALE__ +	/* +	 * On xscale, icache must be invalidated and write buffers drained, +	 * even with cache disabled - 4.2.7 of xscale core developer's manual +	 */ +	mcr	p15, 0, r0, c7, c7, 0	/* invalidate icache */ +	mcr	p15, 0, r0, c7, c10, 4	/* drain write buffer */ +#endif +  	/* ARMv4- don't know bx lr but the assembler fails to see that */  #ifdef __ARM_ARCH_4__ |