aboutsummaryrefslogtreecommitdiff
path: root/kernel.c
diff options
context:
space:
mode:
authorWojtek Kosior <kwojtus@protonmail.com>2019-11-12 18:23:39 +0100
committerWojtek Kosior <kwojtus@protonmail.com>2019-11-12 18:23:39 +0100
commit11541f1d1eaaefebd6d01b42e92a65606e4bc382 (patch)
treeb36a67dd6ab8e6e7804e1ff9daf9a683b1b76269 /kernel.c
parent533976feb8ea79c15fa905642d75adb58a0e6996 (diff)
downloadrpi-MMU-example-11541f1d1eaaefebd6d01b42e92a65606e4bc382.tar.gz
rpi-MMU-example-11541f1d1eaaefebd6d01b42e92a65606e4bc382.zip
some ugly instructions (I wouldn't call this code), that switch to PL0 and check that MMU really works here - it's temporary, don't merge! (merge commit b4 PL0_test.c was added, if you really want)
Diffstat (limited to 'kernel.c')
-rw-r--r--kernel.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel.c b/kernel.c
index bd4426d..5d4e6d7 100644
--- a/kernel.c
+++ b/kernel.c
@@ -229,7 +229,12 @@ void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags)
(&_binary_PL_0_test_img_start)[i];
// jump to that copied code (no switch to PL0 yet, just testing)
- ((void(*)(void)) (((uint32_t) 0b101010101010) << 20))();
+ asm volatile("mov r5, #0\n\r"
+ "movt r5, #0b1010101010101111\n\r"
+ "mov sp, r5\n\r"
+ "mov r5, #0\n\r"
+ "movt r5, #0b1010101010100000\n\r"
+ "blx r5\n\r");
while(1);