Set development environment with UART debug output for aarch64
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
.global _boot
|
||||
.extern k_main
|
||||
|
||||
|
||||
_boot:
|
||||
mrs x0, mpidr_el1 // Check CPU ID
|
||||
mov x1, 0xC1000000
|
||||
bic x0, x0, x1
|
||||
cbz x0, set_stack
|
||||
b idle
|
||||
|
||||
set_stack:
|
||||
ldr x30, =0x40001000
|
||||
mov sp, x30
|
||||
bl start
|
||||
|
||||
start:
|
||||
mov x0, x30
|
||||
bl k_main
|
||||
|
||||
idle: b idle
|
||||
|
||||
+3
-10
@@ -1,10 +1,7 @@
|
||||
.text
|
||||
|
||||
.globl _start
|
||||
.extern k_main
|
||||
.extern stack_ptr
|
||||
|
||||
_start:
|
||||
|
||||
mrs x0, mpidr_el1 // Check CPU ID
|
||||
mov x1, 0xC1000000
|
||||
bic x0, x0, x1
|
||||
@@ -12,13 +9,9 @@ _start:
|
||||
b idle
|
||||
|
||||
set_stack:
|
||||
ldr x30, stack_ptr // defined in sys/memmap
|
||||
ldr x30, =stack_ptr // defined in sys/memmap
|
||||
mov sp, x30
|
||||
bl start
|
||||
|
||||
start:
|
||||
mov x0, x30
|
||||
bl k_main
|
||||
bl k_main
|
||||
|
||||
idle:
|
||||
b idle
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* For some reason qemu UART doesn't work with smaller address */
|
||||
. = 0x40000000;
|
||||
|
||||
.boot . : { boot.o(.text) }
|
||||
.text : { *(.text) }
|
||||
.data : { *(.data) }
|
||||
.bss : { *(.bss COMMON) }
|
||||
|
||||
. = ALIGN(8);
|
||||
. = . + 0x1000;
|
||||
stack_ptr = . ;
|
||||
}
|
||||
Reference in New Issue
Block a user