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