summaryrefslogtreecommitdiff
path: root/sys/arch/mvmeppc/stand/bugcrt/bugcrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/mvmeppc/stand/bugcrt/bugcrt.c')
-rw-r--r--sys/arch/mvmeppc/stand/bugcrt/bugcrt.c126
1 files changed, 0 insertions, 126 deletions
diff --git a/sys/arch/mvmeppc/stand/bugcrt/bugcrt.c b/sys/arch/mvmeppc/stand/bugcrt/bugcrt.c
deleted file mode 100644
index edb48124f98..00000000000
--- a/sys/arch/mvmeppc/stand/bugcrt/bugcrt.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/* $OpenBSD: bugcrt.c,v 1.1 2001/06/26 21:58:02 smurph Exp $ */
-
-/*
- * This is the startup file for single stage bootstraps or the first
- * stage of a two stage bootstrap. It includes code to enable the
- * SFU1.
- */
-
-#include <sys/types.h>
-#include <machine/prom.h>
-
-struct mvmeprom_args bugargs = { 1}; /* not BSS */
-
- asm (".text");
- /* pseudo reset vector */
- asm (STACK_ASM_OP); /* initial sp value */
- asm (".long _start"); /* initial ip value */
-start()
-{
- register int dev_lun asm (MVMEPROM_REG_DEVLUN);
- register int ctrl_lun asm (MVMEPROM_REG_CTRLLUN);
- register int flags asm (MVMEPROM_REG_FLAGS);
- register int ctrl_addr asm (MVMEPROM_REG_CTRLADDR);
- register int entry asm (MVMEPROM_REG_ENTRY);
- register int conf_blk asm (MVMEPROM_REG_CONFBLK);
- register char *arg_start asm (MVMEPROM_REG_ARGSTART);
- register char *arg_end asm (MVMEPROM_REG_ARGEND);
- register char *nbarg_start asm (MVMEPROM_REG_NBARGSTART);
- register char *nbarg_end asm (MVMEPROM_REG_NBARGEND);
- extern int edata, end;
- struct mvmeprom_brdid *id, *mvmeprom_brdid();
-
-#ifdef STAGE1
- /* Do not use r10 to enable the SFU1. This wipes out
- the netboot args. Not cool at all... r25 seems free. */
- asm("| enable SFU1");
- asm(" ldcr r25,cr1");
- asm(" xor r25,r25,0x8");
- asm(" stcr r25,cr1");
-#endif
-
- bugargs.dev_lun = dev_lun;
- bugargs.ctrl_lun = ctrl_lun;
- bugargs.flags = flags;
- bugargs.ctrl_addr = ctrl_addr;
- bugargs.entry = entry;
- bugargs.conf_blk = conf_blk;
- bugargs.arg_start = arg_start;
- bugargs.arg_end = arg_end;
- bugargs.nbarg_start = nbarg_start;
- bugargs.nbarg_end = nbarg_end;
- *bugargs.arg_end = 0;
-
- id = mvmeprom_brdid();
- bugargs.cputyp = id->model;
-
- /*
- * Initialize PSR and CMMU to a known, stable state.
- * This has to be done early for MVME197.
- * Per EB162 mc88110 engineering bulletin.
- */
- /*
- if (bugargs.cputyp == 0x197) {
- asm("| init MVME197");
- asm("| 1. PSR");
- asm("or.u r2,r0,0xA200");
- asm("or r2,r2,0x03E2");
- asm("stcr r2,cr1");
- asm("| 2. ICTL");
- asm("or r2,r0,r0");
- asm("or r2,r2,0x8000");
- asm("or r2,r2,0x0040");
- asm("stcr r2,cr26");
- asm("| 3. DCTL");
- asm("or r2,r0,r0");
- asm("or r2,r2,0x2000");
- asm("or r2,r2,0x0040");
- asm("stcr r2,cr41");
- asm("| 4. init cache");
- asm("or r2,r0,0x01");
- asm("stcr r2,cr25");
- asm("stcr r2,cr40");
- }
- */
- memset(&edata, 0, ((int)&end - (int)&edata));
-
- asm ("| main()");
- main();
- mvmeprom_return();
- /* NOTREACHED */
-}
-
-__main()
-{
-}
-
-void
-bugexec(addr)
-
-void (*addr)();
-
-{
- register int dev_lun asm (MVMEPROM_REG_DEVLUN);
- register int ctrl_lun asm (MVMEPROM_REG_CTRLLUN);
- register int flags asm (MVMEPROM_REG_FLAGS);
- register int ctrl_addr asm (MVMEPROM_REG_CTRLADDR);
- register int entry asm (MVMEPROM_REG_ENTRY);
- register int conf_blk asm (MVMEPROM_REG_CONFBLK);
- register char *arg_start asm (MVMEPROM_REG_ARGSTART);
- register char *arg_end asm (MVMEPROM_REG_ARGEND);
-
- dev_lun = bugargs.dev_lun;
- ctrl_lun = bugargs.ctrl_lun;
- flags = bugargs.flags;
- ctrl_addr = bugargs.ctrl_addr;
- entry = bugargs.entry;
- conf_blk = bugargs.conf_blk;
- arg_start = bugargs.arg_start;
- arg_end = bugargs.arg_end;
-
- (*addr)();
- printf("bugexec: 0x%x returned!\n", addr);
-
- _rtt();
-}
-