]> git.ipfire.org Git - people/ms/u-boot.git/blob - examples/api/crt0.S
usbtty: fix typos
[people/ms/u-boot.git] / examples / api / crt0.S
1 /*
2 * (C) Copyright 2007 Semihalf
3 *
4 * Written by: Rafal Jaworowski <raj@semihalf.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0+
7 */
8
9 #if defined(CONFIG_PPC)
10
11 .text
12 .globl _start
13 _start:
14 lis %r11, search_hint@ha
15 addi %r11, %r11, search_hint@l
16 stw %r1, 0(%r11)
17 b main
18
19
20 .globl syscall
21 syscall:
22 lis %r11, syscall_ptr@ha
23 addi %r11, %r11, syscall_ptr@l
24 lwz %r11, 0(%r11)
25 mtctr %r11
26 bctr
27
28 #elif defined(CONFIG_ARM)
29
30 .text
31 .globl _start
32 _start:
33 ldr ip, =search_hint
34 str sp, [ip]
35 b main
36
37
38 .globl syscall
39 syscall:
40 ldr ip, =syscall_ptr
41 ldr pc, [ip]
42
43 #elif defined(CONFIG_MIPS)
44 #include <asm/asm.h>
45 .text
46 .globl __start
47 .ent __start
48 __start:
49 PTR_S $sp, search_hint
50 b main
51 .end __start
52
53 .globl syscall
54 .ent syscall
55 syscall:
56 PTR_S $ra, return_addr
57 PTR_L $t9, syscall_ptr
58 jalr $t9
59 nop
60 PTR_L $ra, return_addr
61 jr $ra
62 nop
63 .end syscall
64
65 return_addr:
66 .align 8
67 .long 0
68 #else
69 #error No support for this arch!
70 #endif
71
72 .globl syscall_ptr
73 syscall_ptr:
74 .align 8
75 .long 0
76
77 .globl search_hint
78 search_hint:
79 .long 0