Commit | Line | Data |
---|---|---|
1b93b3c3 WZ |
1 | /* |
2 | * This file is subject to the terms and conditions of the GNU General Public | |
3 | * License. See the file "COPYING" in the main directory of this archive | |
4 | * for more details. | |
5 | * | |
6 | * Copyright (C) 1994, 1995 Waldorf Electronics | |
7 | * Written by Ralf Baechle and Andreas Busse | |
8 | * Copyright (C) 1995 - 1999 Ralf Baechle | |
9 | * Copyright (C) 1996 Paul M. Antoine | |
10 | * Modified for DECStation and hence R3000 support by Paul M. Antoine | |
11 | * Further modifications by David S. Miller and Harald Koerfgen | |
12 | * Copyright (C) 1999 Silicon Graphics, Inc. | |
13 | */ | |
14 | ||
15 | #include <asm/asm.h> | |
16 | #include <asm/regdef.h> | |
17 | ||
18 | .set noreorder | |
19 | .cprestore | |
20 | LEAF(start) | |
21 | start: | |
22 | /* Save boot rom start args */ | |
23 | move s0, a0 | |
24 | move s1, a1 | |
25 | move s2, a2 | |
26 | move s3, a3 | |
27 | ||
c0b4e101 JG |
28 | #ifdef CONFIG_MIPS_ZBOOT_APPENDED_DTB |
29 | PTR_LA t0, __appended_dtb | |
30 | #ifdef CONFIG_CPU_BIG_ENDIAN | |
31 | li t1, 0xd00dfeed | |
32 | #else | |
33 | li t1, 0xedfe0dd0 | |
34 | #endif | |
35 | lw t2, (t0) | |
36 | bne t1, t2, not_found | |
37 | nop | |
38 | ||
39 | move s1, t0 | |
40 | PTR_LI s0, -2 | |
41 | not_found: | |
42 | #endif | |
43 | ||
1b93b3c3 WZ |
44 | /* Clear BSS */ |
45 | PTR_LA a0, _edata | |
46 | PTR_LA a2, _end | |
47 | 1: sw zero, 0(a0) | |
48 | bne a2, a0, 1b | |
49 | addiu a0, a0, 4 | |
50 | ||
70342287 RB |
51 | PTR_LA a0, (.heap) /* heap address */ |
52 | PTR_LA sp, (.stack + 8192) /* stack address */ | |
1b93b3c3 WZ |
53 | |
54 | PTR_LA ra, 2f | |
55 | PTR_LA k0, decompress_kernel | |
56 | jr k0 | |
57 | nop | |
58 | 2: | |
59 | move a0, s0 | |
60 | move a1, s1 | |
61 | move a2, s2 | |
62 | move a3, s3 | |
63 | PTR_LI k0, KERNEL_ENTRY | |
64 | jr k0 | |
65 | nop | |
66 | 3: | |
67 | b 3b | |
68 | nop | |
69 | END(start) | |
70 | ||
71 | .comm .heap,BOOT_HEAP_SIZE,4 | |
72 | .comm .stack,4096*2,4 |