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