git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kernel/arm7 - Fiddling, still having issues with VMM
[tpg/acess2.git]
/
Kernel
/
arch
/
arm7
/
start.s
diff --git
a/Kernel/arch/arm7/start.s
b/Kernel/arch/arm7/start.s
index
d1a55da
..
fb28d33
100644
(file)
--- a/
Kernel/arch/arm7/start.s
+++ b/
Kernel/arch/arm7/start.s
@@
-1,7
+1,8
@@
KERNEL_BASE = 0x80000000
KERNEL_BASE = 0x80000000
+.section .init
interrupt_vector_table:
interrupt_vector_table:
- b
.
@ Reset
+ b
_start
@ Reset
b .
b SyscallHandler @ SWI instruction
b .
b .
b SyscallHandler @ SWI instruction
b .
@@
-10,31
+11,37
@@
interrupt_vector_table:
b .
b .
b .
b .
-.comm stack, 0x10000 @ ; 64KiB Stack
-
.globl _start
_start:
.globl _start
_start:
- ldr r0,
_ptr_kerneltable0
+ ldr r0,
=kernel_table0-KERNEL_BASE
mcr p15, 0, r0, c2, c0, 1 @ Set TTBR1 to r0
mcr p15, 0, r0, c2, c0, 1 @ Set TTBR1 to r0
- mov r0, #1
- mcr p15, 0, r0, c2, c0, 2 @ Set TTCR to 1 (50/50 split)
+ 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)
-
mrc p15, 0, r0, c1, c0, 0
+
@
mrc p15, 0, r0, c1, c0, 0
orr r0, r0, #1
orr r0, r0, #1
- 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 sp, =stack+0x10000 @ Set up stack
- bl kmain
+ ldr r0, =kmain
+ mov pc, r0
1: b 1b @ Infinite loop
1: b 1b @ Infinite loop
-_ptr_kerneltable0:
- .long kernel_table0-0x80000000
+_ptr_kmain:
+ .long kmain
+
+.comm stack, 0x10000 @ ; 64KiB Stack
SyscallHandler:
SyscallHandler:
-
+ b .
.section .padata
.globl kernel_table0
.section .padata
.globl kernel_table0
+
kernel_table0:
kernel_table0:
- .rept 0x800
+ .long 0x00000002 @ Identity map the first 4 MiB
+ .rept 0x801
.long 0
.endr
.long 0x00000002 @ Identity map the first 4 MiB
.long 0
.endr
.long 0x00000002 @ Identity map the first 4 MiB
UCC
git Repository :: git.ucc.asn.au