123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /*
- * 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
- #ifdef CONFIG_MIPS_ZBOOT_APPENDED_DTB
- PTR_LA t0, __appended_dtb
- #ifdef CONFIG_CPU_BIG_ENDIAN
- li t1, 0xd00dfeed
- #else
- li t1, 0xedfe0dd0
- #endif
- lw t2, (t0)
- bne t1, t2, not_found
- nop
- move s1, t0
- PTR_LI s0, -2
- not_found:
- #endif
- /* 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
|