]> git.ipfire.org Git - people/ms/u-boot.git/blame - examples/api/crt0.S
api: Add FreeBSD API support for MIPS platforms
[people/ms/u-boot.git] / examples / api / crt0.S
CommitLineData
500856eb
RJ
1/*
2 * (C) Copyright 2007 Semihalf
3 *
4 * Written by: Rafal Jaworowski <raj@semihalf.com>
5 *
1a459660 6 * SPDX-License-Identifier: GPL-2.0+
500856eb
RJ
7 */
8
9#if defined(CONFIG_PPC)
10
11 .text
500856eb
RJ
12 .globl _start
13_start:
b84d7d8f
RJ
14 lis %r11, search_hint@ha
15 addi %r11, %r11, search_hint@l
16 stw %r1, 0(%r11)
500856eb
RJ
17 b main
18
19
20 .globl syscall
21syscall:
22 lis %r11, syscall_ptr@ha
23 addi %r11, %r11, syscall_ptr@l
24 lwz %r11, 0(%r11)
25 mtctr %r11
26 bctr
7fb6c4f9
RJ
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
39syscall:
40 ldr ip, =syscall_ptr
41 ldr pc, [ip]
42
7c604231
SG
43#elif defined(CONFIG_MIPS)
44 .text
45 .globl __start
46 .ent __start
47__start:
48 sw $sp, search_hint
49 b main
50 .end __start
51
52 .globl syscall
53 .ent syscall
54syscall:
55 sw $ra, return_addr
56 lw $t9, syscall_ptr
57 jalr $t9
58 nop
59 lw $ra, return_addr
60 jr $ra
61 nop
62 .end syscall
63
64return_addr:
65 .align 4
66 .long 0
b84d7d8f
RJ
67#else
68#error No support for this arch!
69#endif
500856eb
RJ
70
71 .globl syscall_ptr
72syscall_ptr:
73 .align 4
74 .long 0
b84d7d8f
RJ
75
76 .globl search_hint
77search_hint:
78 .long 0