Path: blob/master/arch/arm/boot/compressed/head-xscale.S
10819 views
/*1* linux/arch/arm/boot/compressed/head-xscale.S2*3* XScale specific tweaks. This is merged into head.S by the linker.4*5*/67#include <linux/linkage.h>89.section ".start", "ax"1011__XScale_start:1213@ Preserve r8/r7 i.e. kernel entry values1415@ Data cache might be active.16@ Be sure to flush kernel binary out of the cache,17@ whatever state it is, before it is turned off.18@ This is done by fetching through currently executed19@ memory to be sure we hit the same cache.20bic r2, pc, #0x1f21add r3, r2, #0x10000 @ 64 kb is quite enough...221: ldr r0, [r2], #3223teq r2, r324bne 1b25mcr p15, 0, r0, c7, c10, 4 @ drain WB26mcr p15, 0, r0, c7, c7, 0 @ flush I & D caches2728@ disabling MMU and caches29mrc p15, 0, r0, c1, c0, 0 @ read control reg30bic r0, r0, #0x05 @ clear DC, MMU31bic r0, r0, #0x1000 @ clear Icache32mcr p15, 0, r0, c1, c0, 03334#ifdef CONFIG_ARCH_IXP200035mov r1, #-136mov r0, #0xd600000037str r1, [r0, #0x14]38str r1, [r0, #0x18]39#endif40414243