]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
examples: implement _start and syscall for RISC-V
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 23 Nov 2024 08:47:52 +0000 (09:47 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sun, 5 Jan 2025 01:30:47 +0000 (02:30 +0100)
To build the API examples on RISC-V we need to
implement _start and syscall for RISC-V.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
examples/api/crt0.S

index f1b88ed8a3dc8ae3fb7c72cd195ef771417095b2..d2a97557817af26316d80edb89dec129530b7b08 100644 (file)
@@ -80,6 +80,38 @@ syscall:
 return_addr:
        .align 8
        .long 0
+#elif defined(CONFIG_ARCH_RV32I)
+
+       .text
+       .globl _start
+_start:
+       la      t0, search_hint
+       sw      sp, 0(t0)
+       la      t0, main
+       jalr    x0, t0
+
+       .globl syscall
+syscall:
+       la      t0, syscall_ptr
+       lw      t0, 0(t0)
+       jalr    x0, t0
+
+#elif defined(CONFIG_ARCH_RV64I)
+
+       .text
+       .globl _start
+_start:
+       la      t0, search_hint
+       sd      sp, 0(t0)
+       la      t0, main
+       jalr    x0, t0
+
+       .globl syscall
+syscall:
+       la      t0, syscall_ptr
+       ld      t0, 0(t0)
+       jalr    x0, t0
+
 #else
 #error No support for this arch!
 #endif