aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorBrunham, Kalen <kalen.brunham@intel.com>2024-05-17 19:13:48 +0000
committerTom Rini <trini@konsulko.com>2024-06-07 16:23:05 -0600
commitf9886bc60f42d5bcfcfa4e474af7dc230400b6be (patch)
tree09cbbae62f0e9c1130821da66e95c1bf1b469827 /examples
parent17b1656dcd07136d83082b23118c20b2042d73e0 (diff)
downloadu-boot-f9886bc60f42d5bcfcfa4e474af7dc230400b6be.zip
u-boot-f9886bc60f42d5bcfcfa4e474af7dc230400b6be.tar.gz
u-boot-f9886bc60f42d5bcfcfa4e474af7dc230400b6be.tar.bz2
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>
Diffstat (limited to 'examples')
-rw-r--r--examples/api/crt0.S15
1 files changed, 15 insertions, 0 deletions
diff --git a/examples/api/crt0.S b/examples/api/crt0.S
index 57bba9d..06f6d1f 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: