mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-11 07:24:46 +00:00
examples: fix building on arm64
Commitf9886bc60f
("Added arm64 assembly for examples/api crt0") tried to add arm64 support to the examples but crt0.S does not even build for qemu_arm64_defconfig with CONFIG_API=y, CONFIG_EXAMPLES=y: examples/api/crt0.S: Assembler messages: examples/api/crt0.S:32: Error: expected a register at operand 1 -- `ldr ip,=search_hint' examples/api/crt0.S:33: Error: unexpected register type at operand 1 -- `str sp,[ip]' make[2]: *** [scripts/Makefile.build:292: examples/api/crt0.o] Error 1 Do not define _start twice. Use valid register names. Move syscall_ptr and search_hint to the data section to avoid an invalid relocation. Fixes:f9886bc60f
("Added arm64 assembly for examples/api crt0") Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
parent
e2635570e0
commit
a3c101a613
1 changed files with 20 additions and 17 deletions
|
@ -24,7 +24,7 @@ syscall:
|
|||
mtctr %r11
|
||||
bctr
|
||||
|
||||
#elif defined(CONFIG_ARM)
|
||||
#elif defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
|
@ -33,27 +33,28 @@ _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:
|
||||
ldr ip, =syscall_ptr
|
||||
ldr pc, [ip]
|
||||
|
||||
#elif defined(CONFIG_ARM64)
|
||||
|
||||
.text
|
||||
.globl _start
|
||||
_start:
|
||||
ldr x17, =search_hint
|
||||
mov x16, sp
|
||||
str x16, [x17]
|
||||
b main
|
||||
|
||||
.globl syscall
|
||||
syscall:
|
||||
ldr x16, =syscall_ptr
|
||||
ldr x16, [x16]
|
||||
br x16
|
||||
|
||||
#elif defined(CONFIG_MIPS)
|
||||
#include <asm/asm.h>
|
||||
.text
|
||||
|
@ -83,6 +84,8 @@ return_addr:
|
|||
#error No support for this arch!
|
||||
#endif
|
||||
|
||||
.section .data
|
||||
|
||||
.globl syscall_ptr
|
||||
syscall_ptr:
|
||||
.align 8
|
||||
|
@ -90,4 +93,4 @@ syscall_ptr:
|
|||
|
||||
.globl search_hint
|
||||
search_hint:
|
||||
.long 0
|
||||
.long 0
|
||||
|
|
Loading…
Add table
Reference in a new issue