root/arch/mips/boot/compressed/head.S

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

/* [<][>][^][v][top][bottom][index][help] */