xref: /csrg-svn/sys/tahoe/stand/srt0.c (revision 49431)
1*49431Sbostic /*-
2*49431Sbostic  * Copyright (c) 1991 The Regents of the University of California.
3*49431Sbostic  * All rights reserved.
4*49431Sbostic  *
5*49431Sbostic  * This code is derived from software contributed to Berkeley by
6*49431Sbostic  * Computer Consoles Inc.
7*49431Sbostic  *
8*49431Sbostic  * %sccs.include.proprietary.c%
9*49431Sbostic  *
10*49431Sbostic  *	@(#)srt0.c	7.2 (Berkeley) 05/08/91
11*49431Sbostic  */
1225870Ssam 
1345796Sbostic #include "../include/mtpr.h"
1425870Ssam #define	LOCORE
1525870Ssam 
1625870Ssam /*
1725870Ssam  * Startup code for standalone system
1825870Ssam  */
1925870Ssam 
2025870Ssam 	.globl	_end
2125870Ssam 	.globl	_main
2225870Ssam 	.globl	__rtt
2349171Sbostic 	.globl	_firstopen
2425870Ssam 	.globl	_start
2530760Skarels 	.globl	_boothowto
2630760Skarels 	.globl	_bootdev
2725870Ssam 
2825870Ssam 	.set	HIGH,31		# mask for total disable
2925870Ssam 
3030313Ssam #ifndef	REL
3130313Ssam 	.globl	_device_space
3230313Ssam _device_space:			# Tapemaster config block, etc.
3330313Ssam 	.space	0x1000-RELOC
3430313Ssam 
3529955Skarels 	.globl	_entry
3629955Skarels _entry:
3725870Ssam 	.word	0x00			# 'call' by relsrt0.
3825870Ssam #endif
3925870Ssam _start:
4025870Ssam 	mtpr	$HIGH,$IPL		# just in case
4129955Skarels #ifdef REL
4230313Ssam 	movl	$BOOTRELOC,sp
4325870Ssam 
4430313Ssam 	movl	$RELOC,r0	/* source address to copy from */
4530313Ssam 	movl	$BOOTRELOC,r1	/* destination address */
4630513Skarels 	movl	tdlen,r2	/* length to copy */
4729553Sroot 	addl2	r2,r0
4829553Sroot 	addl2	r2,r1
4925870Ssam mvloop:
5029553Sroot 	decl	r0
5129553Sroot 	decl	r1
5225870Ssam 	movb	(r0),(r1)
5325870Ssam 	decl	r2
5429553Sroot 	bgeq	mvloop
5529553Sroot 
5629955Skarels /*
5729955Skarels  * zero bss
5829955Skarels  */
5930513Skarels 	movl	aedata,r1		/* destination address */
6030513Skarels 	subl3	$_edata,$_end,r2	/* length to zero */
6129955Skarels zloop:
6229955Skarels 	movb	$0,(r1)
6329955Skarels 	incl	r1
6429955Skarels 	decl	r2
6529955Skarels 	bgeq	zloop
6629955Skarels 
6730513Skarels 	mtpr	$1,$PACC
6830513Skarels 	mtpr	$1,$PADC
6925870Ssam 	jmp	*abegin
7029955Skarels #endif
7129553Sroot 
7225870Ssam begin:
7329955Skarels 	movl	fp,ofp
7430760Skarels 	movl	r11,_boothowto
7530760Skarels 	movl	r10,_bootdev
7649171Sbostic 	movl	$1,_firstopen
7725870Ssam 	callf	$4,_main
7829955Skarels #ifdef REL
7929955Skarels 	halt
8029955Skarels #endif
8129955Skarels 	ret
8225870Ssam 
8325870Ssam __rtt:
8425870Ssam 	.word	0x0
8529955Skarels #ifdef REL
8629955Skarels 	halt
8729955Skarels #endif
8829955Skarels 	movl	ofp,fp
8929955Skarels 	ret
9025870Ssam 
9125870Ssam 	.data
9225870Ssam abegin:	.long	begin
9330313Ssam #ifdef REL
9430513Skarels aedata:	.long	_edata
9530513Skarels tdlen:	.long	_edata-BOOTRELOC
9630313Ssam #endif
9729955Skarels ofp:	.long	0
9830760Skarels _boothowto:	.long	0
9930760Skarels _bootdev:	.long	0
100