From 43fce7b667be075e444ebd5979a58091cd97166c Mon Sep 17 00:00:00 2001 From: Steve Murphree Date: Mon, 27 Sep 1999 19:30:02 +0000 Subject: changed loader load address. --- sys/arch/mvme88k/stand/bootsd/Makefile | 9 +++-- sys/arch/mvme88k/stand/bootsd/boot.c | 13 +++++-- sys/arch/mvme88k/stand/bootst/Makefile | 7 ++-- sys/arch/mvme88k/stand/bootst/boot.c | 4 +- sys/arch/mvme88k/stand/bootxx/Makefile | 6 +-- sys/arch/mvme88k/stand/bootxx/bootxx.c | 4 +- sys/arch/mvme88k/stand/bugcrt/Makefile | 4 +- sys/arch/mvme88k/stand/bugcrt/bugcrt.c | 47 +++++++++++++++++++----- sys/arch/mvme88k/stand/installboot/Makefile | 10 ++--- sys/arch/mvme88k/stand/installboot/installboot.c | 6 ++- sys/arch/mvme88k/stand/libbug/Makefile | 4 +- sys/arch/mvme88k/stand/libsa/Makefile | 4 +- sys/arch/mvme88k/stand/libsa/exec_mvme.c | 16 +++++--- sys/arch/mvme88k/stand/libsa/parse_args.c | 28 ++++++++++++-- sys/arch/mvme88k/stand/netboot/Makefile | 10 +++-- sys/arch/mvme88k/stand/netboot/boot.c | 4 +- sys/arch/mvme88k/stand/netboot/conf.c | 11 ++++-- 17 files changed, 130 insertions(+), 57 deletions(-) (limited to 'sys') diff --git a/sys/arch/mvme88k/stand/bootsd/Makefile b/sys/arch/mvme88k/stand/bootsd/Makefile index 63dfa97be93..2750dd421f3 100644 --- a/sys/arch/mvme88k/stand/bootsd/Makefile +++ b/sys/arch/mvme88k/stand/bootsd/Makefile @@ -1,13 +1,14 @@ # from: @(#)Makefile 8.1 (Berkeley) 6/10/93 -# $OpenBSD: Makefile,v 1.5 1999/05/29 04:41:47 smurph Exp $ - -RELOC=0xCF0000 +# $OpenBSD: Makefile,v 1.6 1999/09/27 19:29:58 smurph Exp $ +# 8Meg - 64K +RELOC=0x7F0000 + S= ${.CURDIR}/../../../.. DEFS= INCPATH=-I${.CURDIR} -I${.CURDIR}/../libsa -I${.CURDIR}/../libbug \ -I${.CURDIR}/../../include -I${S} -I${S}/lib/libsa -CFLAGS= -O2 ${INCPATH} ${DEFS} ${COPTS} +CFLAGS=-O0 ${INCPATH} ${DEFS} ${COPTS} LDFLAGS=-N -T ${RELOC} CLEANFILES+=bootsd diff --git a/sys/arch/mvme88k/stand/bootsd/boot.c b/sys/arch/mvme88k/stand/bootsd/boot.c index 869cf1eb97b..c1c12c2ecab 100644 --- a/sys/arch/mvme88k/stand/bootsd/boot.c +++ b/sys/arch/mvme88k/stand/bootsd/boot.c @@ -1,4 +1,4 @@ -/* $OpenBSD: boot.c,v 1.3 1998/12/15 06:32:33 smurph Exp $ */ +/* $OpenBSD: boot.c,v 1.4 1999/09/27 19:29:59 smurph Exp $ */ /* $NetBSD: boot.c,v 1.2 1995/09/23 03:42:52 gwr Exp $ */ /*- @@ -44,6 +44,11 @@ #include "stand.h" #include "libsa.h" +#define RB_NOSYM 0x400 +#define RB_MULTI 0x4000 +#define RB_EXTRA 0x8000 +#define RB_ASKKERN 0x0010 /* ask kernel name */ + int debug; int errno; extern char *version; @@ -56,10 +61,12 @@ main() int io, flag, ret; int ask = 0; - printf("\n>> OpenBSD MVME%x bootsd [%s]\n", bugargs.cputyp, version); + printf("\n>> OpenBSD/mvme88k bootsd [%s]\n", version); ret = parse_args(&file, &flag); - + if (flag & RB_ASKKERN) { + ask = 1; + } for (;;) { if (ask) { printf("boot: "); diff --git a/sys/arch/mvme88k/stand/bootst/Makefile b/sys/arch/mvme88k/stand/bootst/Makefile index 8d765cc1766..165b38d8321 100644 --- a/sys/arch/mvme88k/stand/bootst/Makefile +++ b/sys/arch/mvme88k/stand/bootst/Makefile @@ -1,14 +1,15 @@ # from: @(#)Makefile 8.1 (Berkeley) 6/10/93 -# $OpenBSD: Makefile,v 1.5 1999/05/29 04:41:47 smurph Exp $ +# $OpenBSD: Makefile,v 1.6 1999/09/27 19:29:59 smurph Exp $ -RELOC=0xAF0000 +# 8Meg - 64K +RELOC=0x7F0000 SIZE?= size S= ${.CURDIR}/../../../.. DEFS= -DSTANDALONE -DCOMPAT_NOLABEL INCPATH=-I${.CURDIR} -I${.CURDIR}/../libsa -I${.CURDIR}/../libbug \ -I${.CURDIR}/../../include -I${S} -I${S}/lib/libsa -CFLAGS= -O2 ${INCPATH} ${DEFS} ${COPTS} +CFLAGS=-O0 ${INCPATH} ${DEFS} ${COPTS} LDFLAGS=-s -N -T ${RELOC} CLEANFILES+=stboot bootst bootst.bug diff --git a/sys/arch/mvme88k/stand/bootst/boot.c b/sys/arch/mvme88k/stand/bootst/boot.c index cfd82c463da..adec6f12d66 100644 --- a/sys/arch/mvme88k/stand/bootst/boot.c +++ b/sys/arch/mvme88k/stand/bootst/boot.c @@ -1,4 +1,4 @@ -/* $OpenBSD: boot.c,v 1.1 1998/12/15 06:09:51 smurph Exp $ */ +/* $OpenBSD: boot.c,v 1.2 1999/09/27 19:29:59 smurph Exp $ */ /*- * Changes Copyright (c) 1998 steve Murphree, Jr. * Copyright (c) 1982, 1986, 1990, 1993 @@ -53,7 +53,7 @@ int main() char line[80]; char *cp, *filename; int bflag = 0; - printf(">> OpenBSD MVME%x tapeboot [%s]\n", bugargs.cputyp, version); + printf(">> OpenBSD/mvme88k tapeboot [%s]\n", version); *bugargs.arg_end = 0; /* ensure */ parse_args(&filename, &bflag); diff --git a/sys/arch/mvme88k/stand/bootxx/Makefile b/sys/arch/mvme88k/stand/bootxx/Makefile index 1e04e3eaf25..7a944c54b8f 100644 --- a/sys/arch/mvme88k/stand/bootxx/Makefile +++ b/sys/arch/mvme88k/stand/bootxx/Makefile @@ -1,13 +1,13 @@ # from: @(#)Makefile 8.1 (Berkeley) 6/10/93 -# $OpenBSD: Makefile,v 1.4 1999/05/29 04:41:48 smurph Exp $ +# $OpenBSD: Makefile,v 1.5 1999/09/27 19:29:59 smurph Exp $ -RELOC=0xAF0000 +RELOC=0x1F0000 S= ${.CURDIR}/../../../.. DEFS= INCPATH=-I${.CURDIR} -I${.CURDIR}/../libsa -I${.CURDIR}/../libbug \ -I${.CURDIR}/../../include -I${S} -I${S}/lib/libsa -CFLAGS= -O2 ${INCPATH} ${DEFS} ${COPTS} +CFLAGS=-O0 ${INCPATH} ${DEFS} ${COPTS} CLEANFILES+=bootxx .include "${S}/arch/mvme88k/stand/bugcrt/Makefile.inc" diff --git a/sys/arch/mvme88k/stand/bootxx/bootxx.c b/sys/arch/mvme88k/stand/bootxx/bootxx.c index d55a99bb711..313fa9d32a5 100644 --- a/sys/arch/mvme88k/stand/bootxx/bootxx.c +++ b/sys/arch/mvme88k/stand/bootxx/bootxx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bootxx.c,v 1.2 1998/12/15 06:32:34 smurph Exp $ */ +/* $OpenBSD: bootxx.c,v 1.3 1999/09/27 19:29:59 smurph Exp $ */ /* * Copyright (c) 1994 Paul Kranenburg @@ -51,7 +51,7 @@ /* * Boot device is derived from ROM provided information. */ -#define LOADADDR 0xCf0000 /* where to load level 2 bootstrap */ +#define LOADADDR 0x7F0000 /* where to load level 2 bootstrap */ /* (l2 must relocate itself) */ /* This determines the largest boot program we can load. */ diff --git a/sys/arch/mvme88k/stand/bugcrt/Makefile b/sys/arch/mvme88k/stand/bugcrt/Makefile index 3e5483d2c70..05e4338be31 100644 --- a/sys/arch/mvme88k/stand/bugcrt/Makefile +++ b/sys/arch/mvme88k/stand/bugcrt/Makefile @@ -1,10 +1,10 @@ -# $OpenBSD: Makefile,v 1.5 1998/12/15 06:12:50 smurph Exp $ +# $OpenBSD: Makefile,v 1.6 1999/09/27 19:30:00 smurph Exp $ # # DO NOT OPTMIZE bugcrt (i.e. no "-O2") # S=${.CURDIR}/../../../.. CFLAGS=-I${.CURDIR}/../../include -I${.CURDIR}/../libbug -I${S}/lib/libsa \ - -fomit-frame-pointer + -fomit-frame-pointer -save-temps OBJS=bugcrt.o sdcrt.o diff --git a/sys/arch/mvme88k/stand/bugcrt/bugcrt.c b/sys/arch/mvme88k/stand/bugcrt/bugcrt.c index 4d4be412d8b..c0db590ca37 100644 --- a/sys/arch/mvme88k/stand/bugcrt/bugcrt.c +++ b/sys/arch/mvme88k/stand/bugcrt/bugcrt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bugcrt.c,v 1.4 1998/12/15 06:12:50 smurph Exp $ */ +/* $OpenBSD: bugcrt.c,v 1.5 1999/09/27 19:30:00 smurph Exp $ */ #include #include @@ -25,10 +25,10 @@ start() /* 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"); + asm("| enable SFU1"); + asm(" ldcr r25,cr1"); + asm(" xor r25,r25,0x8"); + asm(" stcr r25,cr1"); bugargs.dev_lun = dev_lun; bugargs.ctrl_lun = ctrl_lun; @@ -41,12 +41,41 @@ asm (" stcr r25,cr1"); bugargs.nbarg_start = nbarg_start; bugargs.nbarg_end = nbarg_end; *bugargs.arg_end = 0; - - memset(&edata, 0, ((int)&end - (int)&edata)); - +/* 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 */ diff --git a/sys/arch/mvme88k/stand/installboot/Makefile b/sys/arch/mvme88k/stand/installboot/Makefile index 29d4fe138da..1315c134f7c 100644 --- a/sys/arch/mvme88k/stand/installboot/Makefile +++ b/sys/arch/mvme88k/stand/installboot/Makefile @@ -1,15 +1,15 @@ -# $NetBSD: Makefile,v 1.4 1995/10/08 23:44:02 gwr Exp $ +# $OpenBSD: Makefile,v 1.4 1999/09/27 19:30:00 smurph Exp $ PROG= installboot MAN= installboot.8 MANSUBDIR=/mvme88k BINDIR=/usr/mdec -DPADD= ${LIBUTIL} -LDADD= -lutil - +DPADD=${LIBUTIL} +LDADD=-lutil +CFLAGS+=-O0 # Need this to work in the miniroot -LDSTATIC= -static +LDSTATIC=-static .include diff --git a/sys/arch/mvme88k/stand/installboot/installboot.c b/sys/arch/mvme88k/stand/installboot/installboot.c index 74d37b66616..ad853175a69 100644 --- a/sys/arch/mvme88k/stand/installboot/installboot.c +++ b/sys/arch/mvme88k/stand/installboot/installboot.c @@ -331,9 +331,11 @@ int devfd; fs = (struct fs *)sblock; /* Sanity-check super-block. */ - if (fs->fs_magic != FS_MAGIC) + + if (fs->fs_magic != FS_MAGIC) errx(1, "Bad magic number in superblock"); - if (fs->fs_inopb <= 0) + + if (fs->fs_inopb <= 0) err(1, "Bad inopb=%d in superblock", fs->fs_inopb); /* Read inode */ diff --git a/sys/arch/mvme88k/stand/libbug/Makefile b/sys/arch/mvme88k/stand/libbug/Makefile index 5fe2004ecf8..b136c867bcd 100644 --- a/sys/arch/mvme88k/stand/libbug/Makefile +++ b/sys/arch/mvme88k/stand/libbug/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.4 1998/08/22 07:39:51 smurph Exp $ +# $OpenBSD: Makefile,v 1.5 1999/09/27 19:30:00 smurph Exp $ LIB=bug @@ -8,7 +8,7 @@ NOPROFILE= S=${.CURDIR}/../../../.. DIR_SA=$S/lib/libsa -CFLAGS+=-I${.CURDIR}/../../include -I${DIR_SA} +CFLAGS+=-O2 -I${.CURDIR}/../../include -I${DIR_SA} SRCS= delay.c diskrd.c diskwr.c getbrdid.c inchr.c instat.c outln.c \ outstr.c putchar.c return.c rtc_rd.c diff --git a/sys/arch/mvme88k/stand/libsa/Makefile b/sys/arch/mvme88k/stand/libsa/Makefile index 96a743a069b..b35ecc3f443 100644 --- a/sys/arch/mvme88k/stand/libsa/Makefile +++ b/sys/arch/mvme88k/stand/libsa/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.2 1998/08/22 08:07:49 smurph Exp $ +# $OpenBSD: Makefile,v 1.3 1999/09/27 19:30:00 smurph Exp $ LIB=sa @@ -37,7 +37,7 @@ DEFS= -D__INTERNAL_LIBSA_CREAD #-DNETIF_DEBUG INCL= -I${.CURDIR} -I${.CURDIR}/../libbug -I${S}/lib/libsa -I${S} COPTS= #-fno-defer-pop -CFLAGS+= ${XCFLAGS} -O2 ${COPTS} ${DEFS} ${DBG} ${INCL} +CFLAGS+= ${XCFLAGS} ${COPTS} ${DEFS} ${DBG} ${INCL} -O2 .PATH: ${DIR_SA} ${DIR_KERN} diff --git a/sys/arch/mvme88k/stand/libsa/exec_mvme.c b/sys/arch/mvme88k/stand/libsa/exec_mvme.c index 5d4bfd3149e..474e679ea45 100644 --- a/sys/arch/mvme88k/stand/libsa/exec_mvme.c +++ b/sys/arch/mvme88k/stand/libsa/exec_mvme.c @@ -55,6 +55,10 @@ struct kernel { } kernel; #define RB_NOSYM 0x400 +#define RB_MULTI 0x4000 +#define RB_EXTRA 0x8000 +#define RB_ASKKERN 0x0010 /* ask kernel name */ + /*ARGSUSED*/ void exec_mvme(file, flag) @@ -69,10 +73,11 @@ exec_mvme(file, flag) register char *cp; register int *ip; int n; + int bootdev; -#ifdef DEBUG - printf("exec_mvme: file=%s flag=0x%x\n", file, flag); -#endif + if (flag & RB_EXTRA) { + printf("exec_mvme: file=%s flag=0x%x cputyp=%x\n", file, flag, bugargs.cputyp); + } io = open(file, 0); if (io < 0) @@ -201,8 +206,9 @@ exec_mvme(file, flag) printf("Controler Address @ %x ...\n", bugargs.ctrl_addr); if (flag & RB_HALT) mvmeprom_return(); -/* (addr)(flag, 0, kernel.esym, kernel.smini, kernel.emini);*/ - (*entry)(flag, bugargs.ctrl_addr, cp, kernel.smini, kernel.emini); + bootdev = (bugargs.ctrl_lun << 8) | (bugargs.dev_lun & 0xFF); + + (*entry)(flag, bugargs.ctrl_addr, cp, kernel.smini, kernel.emini, bootdev, bugargs.cputyp); printf("exec: kernel returned!\n"); return; diff --git a/sys/arch/mvme88k/stand/libsa/parse_args.c b/sys/arch/mvme88k/stand/libsa/parse_args.c index 217894cb89e..88d218bef04 100644 --- a/sys/arch/mvme88k/stand/libsa/parse_args.c +++ b/sys/arch/mvme88k/stand/libsa/parse_args.c @@ -1,4 +1,4 @@ -/* $OpenBSD: parse_args.c,v 1.1 1998/08/22 08:08:21 smurph Exp $ */ +/* $OpenBSD: parse_args.c,v 1.2 1999/09/27 19:30:01 smurph Exp $ */ /*- * Copyright (c) 1995 Theo de Raadt @@ -43,18 +43,40 @@ #define KERNEL_NAME "bsd" #define RB_NOSYM 0x400 +#define RB_AUTOBOOT 0 /* flags for system auto-booting itself */ + +#if 0 +#define RB_ASKNAME 0x0001 /* ask for file name to reboot from */ +#define RB_SINGLE 0x0002 /* reboot to single user only */ +#define RB_NOSYNC 0x0004 /* dont sync before reboot */ +#define RB_HALT 0x0008 /* don't reboot, just halt */ +#define RB_INITNAME 0x0010 /* name given for /etc/init (unused) */ +#define RB_DFLTROOT 0x0020 /* use compiled-in rootdev */ +#define RB_KDB 0x0040 /* give control to kernel debugger */ +#define RB_RDONLY 0x0080 /* mount root fs read-only */ +#define RB_DUMP 0x0100 /* dump kernel memory before reboot */ +#define RB_MINIROOT 0x0200 /* mini-root present in memory at boot time */ +#define RB_CONFIG 0x0400 /* change configured devices */ +#define RB_TIMEBAD 0x0800 /* don't call resettodr() in boot() */ +#define RB_POWERDOWN 0x1000 /* attempt to power down machine */ +#define RB_SERCONS 0x2000 /* use serial console if available */ +#endif + struct flags { char c; short bit; } bf[] = { - { 'a', RB_ASKNAME }, + { 'a', RB_ASKNAME }, /* ask root */ { 'b', RB_HALT }, { 'c', RB_CONFIG }, - { 'y', RB_NOSYM }, { 'd', RB_KDB }, + { 'e', 0x4000 }, /* spin slave cpus */ + { 'f', 0x0010 }, /* ask kernel name */ { 'm', RB_MINIROOT }, { 'r', RB_DFLTROOT }, { 's', RB_SINGLE }, + { 'x', 0x8000 }, /* extra boot debug */ + { 'y', RB_NOSYM }, }; int diff --git a/sys/arch/mvme88k/stand/netboot/Makefile b/sys/arch/mvme88k/stand/netboot/Makefile index 10c150fe1e0..b52c0ff2858 100644 --- a/sys/arch/mvme88k/stand/netboot/Makefile +++ b/sys/arch/mvme88k/stand/netboot/Makefile @@ -1,7 +1,8 @@ -# $OpenBSD: Makefile,v 1.6 1999/05/29 04:41:48 smurph Exp $ +# $OpenBSD: Makefile,v 1.7 1999/09/27 19:30:01 smurph Exp $ -RELOC=0xAF0000 +# 8Meg - 64K +RELOC=0x7F0000 SIZE?= size STRIP?= strip @@ -10,7 +11,7 @@ DEFS= -DSUN_BOOTPARAMS #-DNETIF_DEBUG INCPATH=-I${.CURDIR} -I${.CURDIR}/../libsa -I${.CURDIR}/../libbug \ -I${S} -I${S}/lib/libsa -CFLAGS= -O2 ${DEFS} ${INCPATH} ${COPTS} +CFLAGS=-O2 ${DEFS} ${INCPATH} ${COPTS} CLEANFILES+=netboot netboot.bin .include "${S}/arch/mvme88k/stand/bugcrt/Makefile.inc" @@ -19,7 +20,8 @@ CLEANFILES+=netboot netboot.bin .include "${S}/arch/mvme88k/stand/libz/Makefile.inc" SRCS= boot.c conf.c version.c devopen.c dev_net.c -SRCS+= if_ie.c if_le.c +SRCS+= if_ie.c +#SRCS+= if_le.c OBJS= ${SRCS:S/.c/.o/g} LIBS= ${LIBSA} ${LIBBUG} ${LIBZ} ${LIBGCC} LDFLAGS+= -s -N -T ${RELOC} diff --git a/sys/arch/mvme88k/stand/netboot/boot.c b/sys/arch/mvme88k/stand/netboot/boot.c index 6e132bf34d7..7442894db37 100644 --- a/sys/arch/mvme88k/stand/netboot/boot.c +++ b/sys/arch/mvme88k/stand/netboot/boot.c @@ -1,4 +1,4 @@ -/* $OpenBSD: boot.c,v 1.3 1998/12/15 06:32:35 smurph Exp $ */ +/* $OpenBSD: boot.c,v 1.4 1999/09/27 19:30:01 smurph Exp $ */ /*- * Copyright (c) 1995 Theo de Raadt @@ -90,7 +90,7 @@ main() bugargs.arg_end = bugargs.nbarg_end; *bugargs.arg_end = 0; /* ensure */ - printf("\n>> OpenBSD MVME%x netboot [%s]\n", bugargs.cputyp, version); + printf("\n>> OpenBSD/mvme88k netboot [%s]\n", version); ret = parse_args(&file, &howto); diff --git a/sys/arch/mvme88k/stand/netboot/conf.c b/sys/arch/mvme88k/stand/netboot/conf.c index 2c87bf0484c..ab297f36ce4 100644 --- a/sys/arch/mvme88k/stand/netboot/conf.c +++ b/sys/arch/mvme88k/stand/netboot/conf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: conf.c,v 1.2 1998/08/22 08:37:55 smurph Exp $ */ +/* $OpenBSD: conf.c,v 1.3 1999/09/27 19:30:01 smurph Exp $ */ #include #include @@ -17,13 +17,16 @@ struct devsw devsw[] = { { "net", net_strategy, net_open, net_close, net_ioctl }, }; int ndevs = sizeof(devsw) / sizeof(devsw[0]); - +/* extern struct netif_driver le_driver; +*/ extern struct netif_driver ie_driver; struct netif_driver *netif_drivers[] = { - &ie_driver, - &le_driver, + &ie_driver, +/* + &le_driver, +*/ }; int n_netif_drivers = sizeof(netif_drivers) / sizeof(netif_drivers[0]); -- cgit v1.2.3