Mercurial > hg > Members > innparusu > xv6-rpi
comparison src/entry.S @ 0:83c23a36980d
Init
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 26 May 2017 23:11:05 +0900 |
parents | |
children | 1d371d93ab4f |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:83c23a36980d |
---|---|
1 #include "arm.h" | |
2 #include "memlayout.h" | |
3 | |
4 .text | |
5 .code 32 | |
6 | |
7 .global _start | |
8 | |
9 _start: | |
10 # clear the entry bss section, the svc stack, and kernel page table | |
11 LDR r1, =edata_entry | |
12 LDR r2, =end_entry | |
13 MOV r3, #0x00 | |
14 | |
15 1: | |
16 CMP r1, r2 | |
17 STMLTIA r1!, {r3} | |
18 BLT 1b | |
19 | |
20 # initialize stack pointers for svc modes | |
21 MSR CPSR_cxsf, #(SVC_MODE|NO_INT) | |
22 LDR sp, =svc_stktop | |
23 | |
24 BL start | |
25 B . | |
26 | |
27 # during startup, kernel stack uses user address, now switch it to kernel addr | |
28 .global jump_stack | |
29 jump_stack: | |
30 MOV r0, sp | |
31 ADD r0, r0, #KERNBASE | |
32 MOV sp, r0 | |
33 MOV pc, lr |