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:
parent
f398945ad3
commit
13be52133d
@ -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
|
||||
|
@ -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*)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user