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.

---
examples/api/crt0.S | 15 +++++++++++++++
1 file changed, 15 insertions(+)

diff --git a/examples/api/crt0.S b/examples/api/crt0.S
index 57bba9d851..4c23a54b21 100644
--- a/examples/api/crt0.S
+++ b/examples/api/crt0.S
@@ -24,6 +24,21 @@ syscall:
                mtctr     %r11
                bctr

+#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]
+
#elif defined(CONFIG_ARM)

               .text
--

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

Reply via email to