diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index bff4c6e..d2b16be 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -189,11 +189,30 @@ __enable_mmu: .align 5 .type __turn_mmu_on, %function __turn_mmu_on: + /* + * <-- we go past here + */ + mov r0, r0 mcr p15, 0, r0, c1, c0, 0 @ write control reg mrc p15, 0, r3, c0, c0, 0 @ read id reg mov r3, r3 mov r3, r3 + + /* + * <-- but do we arrive here? + */ + + mov r6, #0x11000000 + mov r5, #0x84 @ read PASIC2 register 4 + strb r5, [r6, #10] @ + ldrb r5, [r6, #12] @ + orr r5, r4, #0x2 @ green LED on + mov r4, #0x04 @ write to PASIC2 register 4 + strb r4, [r6, #10] @ + strb r5, [r6, #12] @ + sub pc,pc,#8 + mov pc, r13 @@ -283,6 +302,13 @@ __create_page_tables: .endif str r6, [r0] + /* + * Create identity mapping for BA PASIC2 + */ + add r0, r4, #0x11000000 >> 18 + orr r3, r7, #0x11000000 + str r3, [r0] + #ifdef CONFIG_DEBUG_LL ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags /*