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