diff options
author | Stanislav Galabov <sgalabov@gmail.com> | 2016-02-17 15:23:31 +0200 |
---|---|---|
committer | Daniel Schwierzeck <daniel.schwierzeck@gmail.com> | 2016-05-21 01:25:50 +0200 |
commit | 78757d52c8b27f7f33ab4035706796a414c81128 (patch) | |
tree | 463a951b1ce5a32ac658a0cd48efdd97581a42a8 /examples/api/crt0.S | |
parent | 713a9e15bba4a5b6582d5e85fef2f282782cbed7 (diff) | |
download | u-boot-78757d52c8b27f7f33ab4035706796a414c81128.tar.gz |
Fix FreeBSD loader API so that it works on both 32-bit and 64-bit targets.
Specifically tested on MIPS under QEMU (works with all combination of bit-ness and endian-ness)
Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
Diffstat (limited to 'examples/api/crt0.S')
-rw-r--r-- | examples/api/crt0.S | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/examples/api/crt0.S b/examples/api/crt0.S index ced2c82e5f..5a7049d6b4 100644 --- a/examples/api/crt0.S +++ b/examples/api/crt0.S @@ -41,28 +41,29 @@ syscall: ldr pc, [ip] #elif defined(CONFIG_MIPS) +#include <asm/asm.h> .text .globl __start .ent __start __start: - sw $sp, search_hint + PTR_S $sp, search_hint b main .end __start .globl syscall .ent syscall syscall: - sw $ra, return_addr - lw $t9, syscall_ptr + PTR_S $ra, return_addr + PTR_L $t9, syscall_ptr jalr $t9 nop - lw $ra, return_addr + PTR_L $ra, return_addr jr $ra nop .end syscall return_addr: - .align 4 + .align 8 .long 0 #else #error No support for this arch! @@ -70,7 +71,7 @@ return_addr: .globl syscall_ptr syscall_ptr: - .align 4 + .align 8 .long 0 .globl search_hint |