xref: /csrg-svn/sys/tahoe/stand/srt0.c (revision 45796)
1*45796Sbostic /*	srt0.c	1.8	90/12/16	*/
225870Ssam 
3*45796Sbostic #include "../include/mtpr.h"
425870Ssam #define	LOCORE
525870Ssam 
625870Ssam /*
725870Ssam  * Startup code for standalone system
825870Ssam  */
925870Ssam 
1025870Ssam 	.globl	_end
1125870Ssam 	.globl	_main
1225870Ssam 	.globl	__rtt
1325870Ssam 	.globl	_openfirst
1425870Ssam 	.globl	_start
1530760Skarels 	.globl	_boothowto
1630760Skarels 	.globl	_bootdev
1725870Ssam 
1825870Ssam 	.set	HIGH,31		# mask for total disable
1925870Ssam 
2030313Ssam #ifndef	REL
2130313Ssam 	.globl	_device_space
2230313Ssam _device_space:			# Tapemaster config block, etc.
2330313Ssam 	.space	0x1000-RELOC
2430313Ssam 
2529955Skarels 	.globl	_entry
2629955Skarels _entry:
2725870Ssam 	.word	0x00			# 'call' by relsrt0.
2825870Ssam #endif
2925870Ssam _start:
3025870Ssam 	mtpr	$HIGH,$IPL		# just in case
3129955Skarels #ifdef REL
3230313Ssam 	movl	$BOOTRELOC,sp
3325870Ssam 
3430313Ssam 	movl	$RELOC,r0	/* source address to copy from */
3530313Ssam 	movl	$BOOTRELOC,r1	/* destination address */
3630513Skarels 	movl	tdlen,r2	/* length to copy */
3729553Sroot 	addl2	r2,r0
3829553Sroot 	addl2	r2,r1
3925870Ssam mvloop:
4029553Sroot 	decl	r0
4129553Sroot 	decl	r1
4225870Ssam 	movb	(r0),(r1)
4325870Ssam 	decl	r2
4429553Sroot 	bgeq	mvloop
4529553Sroot 
4629955Skarels /*
4729955Skarels  * zero bss
4829955Skarels  */
4930513Skarels 	movl	aedata,r1		/* destination address */
5030513Skarels 	subl3	$_edata,$_end,r2	/* length to zero */
5129955Skarels zloop:
5229955Skarels 	movb	$0,(r1)
5329955Skarels 	incl	r1
5429955Skarels 	decl	r2
5529955Skarels 	bgeq	zloop
5629955Skarels 
5730513Skarels 	mtpr	$1,$PACC
5830513Skarels 	mtpr	$1,$PADC
5925870Ssam 	jmp	*abegin
6029955Skarels #endif
6129553Sroot 
6225870Ssam begin:
6329955Skarels 	movl	fp,ofp
6430760Skarels 	movl	r11,_boothowto
6530760Skarels 	movl	r10,_bootdev
6625870Ssam 	movl	$1,_openfirst
6725870Ssam 	callf	$4,_main
6829955Skarels #ifdef REL
6929955Skarels 	halt
7029955Skarels #endif
7129955Skarels 	ret
7225870Ssam 
7325870Ssam __rtt:
7425870Ssam 	.word	0x0
7529955Skarels #ifdef REL
7629955Skarels 	halt
7729955Skarels #endif
7829955Skarels 	movl	ofp,fp
7929955Skarels 	ret
8025870Ssam 
8125870Ssam 	.data
8225870Ssam abegin:	.long	begin
8330313Ssam #ifdef REL
8430513Skarels aedata:	.long	_edata
8530513Skarels tdlen:	.long	_edata-BOOTRELOC
8630313Ssam #endif
8729955Skarels ofp:	.long	0
8830760Skarels _boothowto:	.long	0
8930760Skarels _bootdev:	.long	0
90