diff --git a/libcpu/arm/cortex-a/start_gcc.S b/libcpu/arm/cortex-a/start_gcc.S index f73b678f7ee35d8366efc53c3ddb8cb4cfa35b8f..5916ddf95703a35bcdbbf8c12cf7cc2a04dcf2c3 100644 --- a/libcpu/arm/cortex-a/start_gcc.S +++ b/libcpu/arm/cortex-a/start_gcc.S @@ -122,6 +122,13 @@ secondary_loop: b secondary_loop normal_setup: + + /* enable I cache + branch prediction */ + mrc p15, 0, r0, c1, c0, 0 + orr r0, r0, #(1<<12) + orr r0, r0, #(1<<11) + mcr p15, 0, r0, c1, c0, 0 + /* setup stack */ bl stack_setup @@ -142,10 +149,6 @@ bss_loop: mcr p15, 0, r1, c1, c0, 1 //enable smp #endif - /* enable branch prediction */ - mrc p15, 0, r0, c1, c0, 0 - orr r0, r0, #(1<<11) - mcr p15, 0, r0, c1, c0, 0 /* initialize the mmu table and enable mmu */ ldr r0, =platform_mem_desc