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/armv7 - Task switching now supported
[tpg/acess2.git]
/
Kernel
/
arch
/
armv7
/
start.S
diff --git
a/Kernel/arch/armv7/start.S
b/Kernel/arch/armv7/start.S
index
718131c
..
e1bbe0c
100644
(file)
--- a/
Kernel/arch/armv7/start.S
+++ b/
Kernel/arch/armv7/start.S
@@
-52,9
+52,14
@@
IRQHandler:
kernel_table0:
.long 0x00000002 @ Identity map the first 1 MiB
kernel_table0:
.long 0x00000002 @ Identity map the first 1 MiB
- .rept 0x
800
- 1
+ .rept 0x
7FC
- 1
.long 0
.endr
.long 0
.endr
+ .long user_table1_map + 0x000 - KERNEL_BASE + 1
+ .long user_table1_map + 0x400 - KERNEL_BASE + 1
+ .long 0 @ user_table1_map + 0x800 - KERNEL_BASE + 1
+ .long 0 @ user_table1_map + 0xC00 - KERNEL_BASE + 1
+ @ 0x80000000 - User/Kernel split
.long 0x00000002 @ Map first 4 MiB to 2GiB
.long 0x00100002 @
.long 0x00200002 @
.long 0x00000002 @ Map first 4 MiB to 2GiB
.long 0x00100002 @
.long 0x00200002 @
@@
-102,6
+107,18
@@
kernel_table0:
.long 0
.endr
.long 0
.endr
+@ PID0 user table
+.globl user_table1_map
+user_table1_map: @ Size = 4KiB
+ .rept 0x7F8/4
+ .long 0
+ .endr
+ .long kernel_table0 - KERNEL_BASE + (1 << 4) + 3
+ .long user_table1_map - KERNEL_BASE + (1 << 4) + 3
+ .rept 0x800/4
+ .long 0
+ .endr
+
.globl kernel_table1_map
kernel_table1_map: @ Size = 4KiB
.rept 0xF00/4
.globl kernel_table1_map
kernel_table1_map: @ Size = 4KiB
.rept 0xF00/4
UCC
git Repository :: git.ucc.asn.au