| /* | |
| * This file is subject to the terms and conditions of the GNU General Public | |
| * License. See the file "COPYING" in the main directory of this archive | |
| * for more details. | |
| * | |
| * Copyright (C) 1994, 1995 Waldorf Electronics | |
| * Written by Ralf Baechle and Andreas Busse | |
| * Copyright (C) 1995 - 1999 Ralf Baechle | |
| * Copyright (C) 1996 Paul M. Antoine | |
| * Modified for DECStation and hence R3000 support by Paul M. Antoine | |
| * Further modifications by David S. Miller and Harald Koerfgen | |
| * Copyright (C) 1999 Silicon Graphics, Inc. | |
| */ | |
| #include <asm/asm.h> | |
| #include <asm/regdef.h> | |
| .set noreorder | |
| .cprestore | |
| LEAF(start) | |
| start: | |
| /* Save boot rom start args */ | |
| move s0, a0 | |
| move s1, a1 | |
| move s2, a2 | |
| move s3, a3 | |
| /* Clear BSS */ | |
| PTR_LA a0, _edata | |
| PTR_LA a2, _end | |
| 1: sw zero, 0(a0) | |
| bne a2, a0, 1b | |
| addiu a0, a0, 4 | |
| PTR_LA a0, (.heap) /* heap address */ | |
| PTR_LA sp, (.stack + 8192) /* stack address */ | |
| PTR_LA ra, 2f | |
| PTR_LA k0, decompress_kernel | |
| jr k0 | |
| nop | |
| 2: | |
| move a0, s0 | |
| move a1, s1 | |
| move a2, s2 | |
| move a3, s3 | |
| PTR_LI k0, KERNEL_ENTRY | |
| jr k0 | |
| nop | |
| 3: | |
| b 3b | |
| nop | |
| END(start) | |
| .comm .heap,BOOT_HEAP_SIZE,4 | |
| .comm .stack,4096*2,4 |