blob: 061c2af90feec1d90e7017814573dc9c0aa7e65a [file] [log] [blame]
/*
* Copyright 2019, Data61, CSIRO (ABN 41 687 119 230)
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <sel4runtime/gen_config.h>
.section .text
.global _sel4_start
_sel4_start:
/* Set gp for relaxation. See
* https://www.sifive.com/blog/2017/08/28/all-aboard-part-3-linker-relaxation-in-riscv-toolchain/
*/
.option push
.option norelax
1:auipc gp, %pcrel_hi(__global_pointer$)
addi gp, gp, %pcrel_lo(1b)
.option pop
la sp, __stack_top
jal __sel4_start_root
/* should not return */
1:
j 1b
.section .bss
__stack_base:
.align 16
.space CONFIG_SEL4RUNTIME_ROOT_STACK
__stack_top: