| /* |
| * 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 |