Xinu7/src/cmd/download/vax/eload/src/startup.s
/* startup.s - start */
#define ASM
#include <ethdown.h>
#include <procreg.h>
#include <vaxdl.h>
/*----------------------------------------------------------------------------
* Eload start location
* assumption: processor is in kernel mode on entry
*----------------------------------------------------------------------------
*/
.text
.globl estart
estart: /* boot utility entry pt */
mtpr $DISABLE, $IPL /* disable interrupts */
mtpr $IURSET, $IUR /* reset the bus */
mtpr $IURUNSET, $IUR /* unreset the bus */
mtpr $NOMAP, $MAPEN /* disable memory management */
mtpr $intstk, $ISP /* give interrupt stack memory */
/* we use interrupt stk for all */
mtpr $MCESRCLR, $MCESR /* clear machine check history */
mtpr $0, $SCBB /* set up for sizmem */
mfpr $SID, -(sp) /* see if UVAXII -- if so, must */
bicl2 $SYSTYPE, (sp) /* set up bus mapping registers */
cmpl (sp), $UVAXIISID
jneq eloadgo
calls $0, _qmapinit /* set up default mapping regs */
eloadgo:
calls $0, _eload
jbr estart /* should never be executed */
.globl intstk
.space 6*1024 /* space for stack */
intstk:
.space 4