From: Brunham, Kalen <kalen.brunham@intel.com>
Date: Fri, 17 May 2024 19:13:48 +0000 (+0000)
Subject: Added arm64 assembly for examples/api crt0
X-Git-Tag: v2025.01-rc5-pxa1908~398^2~62
X-Git-Url: http://git.dujemihanovic.xyz/%22http:/www.sics.se/static/%7B%7B%20.RelPermalink%20%7D%7D?a=commitdiff_plain;h=f9886bc60f42;p=u-boot.git

Added arm64 assembly for examples/api crt0

I've encountered a problem when compiling the 'examples/api' directory for ARM64 in U-boot. The problem lies in the assembly code in 'examples/api/crt0.S' where the current CONFIG_ARM code is only 32-bit. When targeting ARM64, a 64-bit version is necessary.

I have proposed a fix by including a 'CONFIG_ARM64' section in the assembly code as shown below.  These changes have been check via https://github.com/u-boot/u-boot/pull/538.

Feedback is welcome.

Signed-off-by: Kalen Brunham <kalen.brunham@intel.com>
---

diff --git a/examples/api/crt0.S b/examples/api/crt0.S
index 57bba9d851..06f6d1f9ad 100644
--- a/examples/api/crt0.S
+++ b/examples/api/crt0.S
@@ -33,6 +33,21 @@ _start:
 	str	sp, [ip]
 	b	main
 
+#elif defined(CONFIG_ARM64)
+
+              .text
+              .globl _start
+_start:
+              ldr           ip0, =search_hint
+              str           sp_el2, [ip0]
+              b             main
+
+
+              .globl syscall
+syscall:
+              ldr           ip0, =syscall_ptr
+              ldr           pc_el2, [ip0]
+
 
 	.globl syscall
 syscall: