Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * This file is subject to the terms and conditions of the GNU General Public
0003  * License.  See the file "COPYING" in the main directory of this archive
0004  * for more details.
0005  *
0006  * Copyright (C) 1994, 1995 Waldorf Electronics
0007  * Written by Ralf Baechle and Andreas Busse
0008  * Copyright (C) 1995 - 1999 Ralf Baechle
0009  * Copyright (C) 1996 Paul M. Antoine
0010  * Modified for DECStation and hence R3000 support by Paul M. Antoine
0011  * Further modifications by David S. Miller and Harald Koerfgen
0012  * Copyright (C) 1999 Silicon Graphics, Inc.
0013  */
0014 
0015 #include <asm/asm.h>
0016 #include <asm/regdef.h>
0017 
0018     LEAF(start)
0019     /* Save boot rom start args */
0020     move    s0, a0
0021     move    s1, a1
0022     move    s2, a2
0023     move    s3, a3
0024 
0025     /* Clear BSS */
0026     PTR_LA  a0, _edata
0027     PTR_LA  a2, _end
0028 1:  sw  zero, 0(a0)
0029     addiu   a0, a0, 4
0030     bne a2, a0, 1b
0031 
0032     PTR_LA  a0, (.heap)      /* heap address */
0033     PTR_LA  sp, (.stack + 8192)  /* stack address */
0034 
0035     PTR_LA  t9, decompress_kernel
0036     jalr    t9
0037 
0038 2:
0039     move    a0, s0
0040     move    a1, s1
0041     move    a2, s2
0042     move    a3, s3
0043     PTR_LI  t9, KERNEL_ENTRY
0044     jalr    t9
0045 
0046 3:
0047     b   3b
0048 
0049     END(start)
0050 
0051     .comm .heap,BOOT_HEAP_SIZE,4
0052     .comm .stack,4096*2,4