1*4882a593Smuzhiyun/* 2*4882a593Smuzhiyun * This file is subject to the terms and conditions of the GNU General Public 3*4882a593Smuzhiyun * License. See the file "COPYING" in the main directory of this archive 4*4882a593Smuzhiyun * for more details. 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * Copyright (C) 1994, 1995 Waldorf Electronics 7*4882a593Smuzhiyun * Written by Ralf Baechle and Andreas Busse 8*4882a593Smuzhiyun * Copyright (C) 1995 - 1999 Ralf Baechle 9*4882a593Smuzhiyun * Copyright (C) 1996 Paul M. Antoine 10*4882a593Smuzhiyun * Modified for DECStation and hence R3000 support by Paul M. Antoine 11*4882a593Smuzhiyun * Further modifications by David S. Miller and Harald Koerfgen 12*4882a593Smuzhiyun * Copyright (C) 1999 Silicon Graphics, Inc. 13*4882a593Smuzhiyun */ 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun#include <asm/asm.h> 16*4882a593Smuzhiyun#include <asm/regdef.h> 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun .set noreorder 19*4882a593Smuzhiyun .cprestore 20*4882a593Smuzhiyun LEAF(start) 21*4882a593Smuzhiyunstart: 22*4882a593Smuzhiyun /* Save boot rom start args */ 23*4882a593Smuzhiyun move s0, a0 24*4882a593Smuzhiyun move s1, a1 25*4882a593Smuzhiyun move s2, a2 26*4882a593Smuzhiyun move s3, a3 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun /* Clear BSS */ 29*4882a593Smuzhiyun PTR_LA a0, _edata 30*4882a593Smuzhiyun PTR_LA a2, _end 31*4882a593Smuzhiyun1: sw zero, 0(a0) 32*4882a593Smuzhiyun bne a2, a0, 1b 33*4882a593Smuzhiyun addiu a0, a0, 4 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun PTR_LA a0, (.heap) /* heap address */ 36*4882a593Smuzhiyun PTR_LA sp, (.stack + 8192) /* stack address */ 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun PTR_LA ra, 2f 39*4882a593Smuzhiyun PTR_LA k0, decompress_kernel 40*4882a593Smuzhiyun jr k0 41*4882a593Smuzhiyun nop 42*4882a593Smuzhiyun2: 43*4882a593Smuzhiyun move a0, s0 44*4882a593Smuzhiyun move a1, s1 45*4882a593Smuzhiyun move a2, s2 46*4882a593Smuzhiyun move a3, s3 47*4882a593Smuzhiyun PTR_LI k0, KERNEL_ENTRY 48*4882a593Smuzhiyun jr k0 49*4882a593Smuzhiyun nop 50*4882a593Smuzhiyun3: 51*4882a593Smuzhiyun b 3b 52*4882a593Smuzhiyun nop 53*4882a593Smuzhiyun END(start) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun .comm .heap,BOOT_HEAP_SIZE,4 56*4882a593Smuzhiyun .comm .stack,4096*2,4 57