diff --git a/base-hw/src/platform/crt0.s b/base-hw/src/platform/crt0.s index 9b53abe49..d8c1dc330 100644 --- a/base-hw/src/platform/crt0.s +++ b/base-hw/src/platform/crt0.s @@ -1,3 +1,4 @@ + /** * \brief Startup code for Genode programs on Cortex A9 * \author Martin Stein @@ -22,26 +23,28 @@ str r0, [r1] /* call _main routine */ - ldr sp, =_main_stack_high + ldr sp, =_stack_high .extern _main bl _main 1: b 1b /* dynamic symbol object handle */ - .align 3 + .p2align 2 .global __dso_handle __dso_handle: .long 0 .section .bss /* main-thread stack */ - .align 3 + .p2align 2 + .global _stack_low + _stack_low: .space 64*1024 - .global _main_stack_high - _main_stack_high: + .global _stack_high + _stack_high: /* main-thread UTCB-pointer for the Genode thread-API */ - .align 3 + .p2align 2 .global _main_utcb _main_utcb: .long 0 diff --git a/os/src/lib/ldso/arm/crt0.s b/os/src/lib/ldso/arm/crt0.s index a5b6a00bc..805dc3d06 100644 --- a/os/src/lib/ldso/arm/crt0.s +++ b/os/src/lib/ldso/arm/crt0.s @@ -17,9 +17,13 @@ .globl _start_ldso _start_ldso: + ldr r2, .initial_utcb + str r0, [r2] + ldr sp, .initial_sp bl init_rtld b _main - .initial_sp: .word _stack_high + .initial_sp: .word _stack_high + .initial_utcb: .word _main_utcb