X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Farm7%2Fstart.s;h=abfbb59b2d6fe4cb1b5b397c6551bd45cc2eb2fe;hb=3733a77bb073c6c22e674bebe22a6f4f9a2b5225;hp=fb28d33b6f5142b383a8f42335a8330d0d70da78;hpb=5473eb360038564028bd9afa0193f5841ab628cd;p=tpg%2Facess2.git diff --git a/Kernel/arch/arm7/start.s b/Kernel/arch/arm7/start.s index fb28d33b..abfbb59b 100644 --- a/Kernel/arch/arm7/start.s +++ b/Kernel/arch/arm7/start.s @@ -3,7 +3,7 @@ KERNEL_BASE = 0x80000000 .section .init interrupt_vector_table: b _start @ Reset - b . + b . @ ? b SyscallHandler @ SWI instruction b . b . @@ -17,13 +17,16 @@ _start: mcr p15, 0, r0, c2, c0, 1 @ Set TTBR1 to r0 mcr p15, 0, r0, c2, c0, 0 @ Set TTBR0 to r0 too (for identity) -@ mov r0, #1 -@ mcr p15, 0, r0, c2, c0, 2 @ Set TTCR to 1 (50/50 split) + mov r0, #1 + mcr p15, 0, r0, c2, c0, 2 @ Set TTCR to 1 (50/50 split) + + mov r0, #3 + mcr p15, 0, r0, c3, c0, 0 @ Set Domain 0 to Manager -@ mrc p15, 0, r0, c1, c0, 0 + mrc p15, 0, r0, c1, c0, 0 orr r0, r0, #1 -@ orr r0, r0, #1 << 23 -@ mcr p15, 0, r0, c1, c0, 0 + orr r0, r0, #1 << 23 + mcr p15, 0, r0, c1, c0, 0 ldr sp, =stack+0x10000 @ Set up stack ldr r0, =kmain @@ -41,10 +44,10 @@ SyscallHandler: kernel_table0: .long 0x00000002 @ Identity map the first 4 MiB - .rept 0x801 + .rept 0x800 - 1 .long 0 .endr - .long 0x00000002 @ Identity map the first 4 MiB + .long 0x00000002 @ Map first 4 MiB to 2GiB .long 0x00100002 @ .long 0x00200002 @ .long 0x00300002 @ @@ -79,9 +82,10 @@ kernel_table1_map: .long kernel_table1_map - KERNEL_BASE + (1 << 4) + 3 .long 0 +@ Hardware mappings .globl hwmap_table_0 hwmap_table_0: - .long 0x16000000 + (1 << 4) + 3 @ Serial Port + .long 0x10009000 + (1 << 4) + 3 @ UART0 .rept 1024 - 1 .long 0 .endr