162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
362306a36Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
462306a36Sopenharmony_ci * for more details.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright (C) 1994, 1995 Waldorf Electronics
762306a36Sopenharmony_ci * Written by Ralf Baechle and Andreas Busse
862306a36Sopenharmony_ci * Copyright (C) 1995 - 1999 Ralf Baechle
962306a36Sopenharmony_ci * Copyright (C) 1996 Paul M. Antoine
1062306a36Sopenharmony_ci * Modified for DECStation and hence R3000 support by Paul M. Antoine
1162306a36Sopenharmony_ci * Further modifications by David S. Miller and Harald Koerfgen
1262306a36Sopenharmony_ci * Copyright (C) 1999 Silicon Graphics, Inc.
1362306a36Sopenharmony_ci */
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#include <asm/asm.h>
1662306a36Sopenharmony_ci#include <asm/regdef.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	LEAF(start)
1962306a36Sopenharmony_ci	/* Save boot rom start args */
2062306a36Sopenharmony_ci	move	s0, a0
2162306a36Sopenharmony_ci	move	s1, a1
2262306a36Sopenharmony_ci	move	s2, a2
2362306a36Sopenharmony_ci	move	s3, a3
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	/* Clear BSS */
2662306a36Sopenharmony_ci	PTR_LA	a0, _edata
2762306a36Sopenharmony_ci	PTR_LA	a2, _end
2862306a36Sopenharmony_ci1:	sw	zero, 0(a0)
2962306a36Sopenharmony_ci	addiu	a0, a0, 4
3062306a36Sopenharmony_ci	bne	a2, a0, 1b
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	PTR_LA	a0, (.heap)	     /* heap address */
3362306a36Sopenharmony_ci	PTR_LA	sp, (.stack + 8192)  /* stack address */
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	PTR_LA	t9, decompress_kernel
3662306a36Sopenharmony_ci	jalr	t9
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci2:
3962306a36Sopenharmony_ci	move	a0, s0
4062306a36Sopenharmony_ci	move	a1, s1
4162306a36Sopenharmony_ci	move	a2, s2
4262306a36Sopenharmony_ci	move	a3, s3
4362306a36Sopenharmony_ci	PTR_LI	t9, KERNEL_ENTRY
4462306a36Sopenharmony_ci	jalr	t9
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci3:
4762306a36Sopenharmony_ci	b	3b
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	END(start)
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	.comm .heap,BOOT_HEAP_SIZE,4
5262306a36Sopenharmony_ci	.comm .stack,4096*2,4
53