diff src/entry-osx.S @ 3:0bbeb1a284e2

fix entry asmcode
author tobaru
date Fri, 04 Aug 2017 20:53:15 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/entry-osx.S	Fri Aug 04 20:53:15 2017 +0900
@@ -0,0 +1,33 @@
+#include "arm.h"
+#include "memlayout.h"
+
+.text
+.code 32
+
+.global _start
+
+_start:
+    # clear the entry bss section, the svc stack, and kernel page table
+    LDR     r1, =edata_entry
+    LDR     r2, =end_entry
+    MOV     r3, #0x00
+
+1:
+    CMP     r1, r2
+    STMIALT r1!, {r3}
+    BLT     1b
+
+    # initialize stack pointers for svc modes
+    MSR     CPSR_cxsf, #(SVC_MODE|NO_INT)
+    LDR     sp, =svc_stktop
+
+    BL      start
+    B .
+
+# during startup, kernel stack uses user address, now switch it to kernel addr
+.global jump_stack
+jump_stack:
+    MOV     r0, sp
+    ADD     r0, r0, #KERNBASE
+    MOV     sp, r0
+    MOV     pc, lr