1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-22 16:16:16 +04:00

aarch64: move kernel stack top to 0x100000

This commit is contained in:
equation314 2018-11-20 18:32:26 +08:00
parent f398945ad3
commit 13be52133d
2 changed files with 15 additions and 8 deletions

View File

@ -2,8 +2,7 @@
.section .text.boot
.global _start
_start:
boot:
# read cpu affinity, start core 0, halt rest
mrs x1, mpidr_el1
and x1, x1, #3
@ -16,7 +15,7 @@ halt:
setup:
# store the desired EL1 stack pointer in x1
adr x1, _start
ldr x1, =_start
# use SP_ELx for Exception level ELx
msr SPsel, #1
@ -99,12 +98,17 @@ zero_bss:
zero_bss_loop:
# zero out the BSS section, 64-bits at a time
cbz x2, go_kmain
cbz x2, zero_bss_loop_end
str xzr, [x1], #8
sub x2, x2, #8
cbnz x2, zero_bss_loop
go_kmain:
zero_bss_loop_end:
b _start
.section .text.entry
.globl _start
_start:
# jump to rust_main, which shouldn't return. halt if it does
bl rust_main
b halt

View File

@ -3,11 +3,14 @@ ENTRY(_start)
SECTIONS {
. = 0x80000; /* Raspbery Pi 3 Aarch64 (kernel8.img) load address */
/* start of the binary */
_start = .;
.boot : {
KEEP(*(.text.boot)) /* from boot.S */
}
. = 0x100000; /* Load the kernel at this address. It's also kernel stack top address */
.text : {
KEEP(*(.text.boot)) /* from boot.S */
*(.text.entry)
*(.text .text.* .gnu.linkonce.t*)
}