diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-12-14 03:54:39 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-12-14 03:54:39 +0000 |
commit | f12226068d16673eea9adafe99388f1061d3309f (patch) | |
tree | 90cb542d279e793d072ffc6e9f1f1add1f07179e /sys/arch/alpha/stand/boot | |
parent | 470d0389b66fade522060561cc0c6ba36e01e7cb (diff) |
update to netbsd
Diffstat (limited to 'sys/arch/alpha/stand/boot')
-rw-r--r-- | sys/arch/alpha/stand/boot/Makefile | 102 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/TODO | 7 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/boot.c | 7 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/conf.c | 10 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/devopen.c (renamed from sys/arch/alpha/stand/boot/libsa/devopen.c) | 4 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/disk.c | 20 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/disk.h | 7 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/filesystem.c (renamed from sys/arch/alpha/stand/boot/libsa/filesystem.c) | 2 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/libsa/Makefile | 14 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/newvers.sh | 4 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/prom.c | 135 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/prom_disp.S | 116 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/start.S | 81 | ||||
-rw-r--r-- | sys/arch/alpha/stand/boot/version | 4 |
14 files changed, 84 insertions, 429 deletions
diff --git a/sys/arch/alpha/stand/boot/Makefile b/sys/arch/alpha/stand/boot/Makefile index 03d7c126bfa..23c3c283e7c 100644 --- a/sys/arch/alpha/stand/boot/Makefile +++ b/sys/arch/alpha/stand/boot/Makefile @@ -1,61 +1,51 @@ -# $NetBSD: Makefile,v 1.4 1995/06/28 00:58:44 cgd Exp $ -# -# BSD Boot blocks for the Alpha -# -# XXX should generate a primary boot block, too... - -INCPATH=-I../../../.. -I. - -# Boot relocation address -RELOC1= 20020000 -# Low memory test program relocation address -#RELOC2= 20004000 -# High memory test program relocation address -RELOC2= fffffc0000230000 - -# Compiler and assembler flags used to generate boot blocks. -# -DEFS= -DSTANDALONE -AFLAGS+=-DASSEMBLER ${INCPATH} -CFLAGS= -mno-fp-regs ${INCPATH} ${DEFS} - -LIBS= libsa/libsa.a -lc -SRCS= boot.c disk.c conf.c prom.c test.c - -all: boot - -libsa/libsa.a:: - cd libsa; make - -# This boot is supposed to be installed in this way: -# cp boot <true_root_of_disk>/boot -BOBJS= boot.o conf.o disk.o prom.o prom_disp.o prom_swpal.o vers.o -boot: start.o ${BOBJS} ${LIBS} - ${LD} -Ttext ${RELOC1} -N \ - -e start -o ${.TARGET} start.o ${BOBJS} ${LIBS} - -# This boot is supposed to be installed in this way: -# cp test_boot <true_root_of_disk>/test_boot -# -# It is used presumably in this way: -# boot -fi "test_boot" dka300 -TOBJS= prom.o prom_disp.o prom_swpal.o test.o -test_boot: start.o ${TOBJS} ${LIBS} - ${LD} -T ${RELOC2} -N -e start -o ${.TARGET} start.o ${TOBJS} ${LIBS} - -clean cleandir: - rm -f .depend *.o *.exe *.i errs make.out core* vers.c - rm -f a.out boot test_boot - cd libsa && make cleandir +# $NetBSD: Makefile,v 1.5 1995/11/23 02:39:20 cgd Exp $ + +.PATH: ${.CURDIR}/.. ${.CURDIR}/../../../../lib/libsa + +BOOT_PROG = boot +BOOT_RELOC = ${SECONDARY_LOAD_ADDRESS} + +BOOT_SRCS = start.S boot.c disk.c conf.c prom.c prom_disp.S OSFpal.c +BOOT_SRCS+= alloc.c bzero.c close.c dev.c devopen.c disklabel.c +BOOT_SRCS+= getfile.c gets.c ioctl.c lseek.c open.c printf.c read.c +BOOT_SRCS+= strcmp.c ufs.c write.c bcopy.c filesystem.c strlen.c +BOOT_SRCS+= ntohl.c prom_swpal.S +BOOT_OBJS = ${BOOT_SRCS:N*.h:R:S/$/.o/g} + +HEADERSIZE_PROG = headersize + +AFLAGS += -DASSEMBLER +CPPFLAGS += -I${.CURDIR}/../.. -I${.CURDIR}/../../../.. +CFLAGS = -Werror -mno-fp-regs -g -DCOMPAT_UFS + +CLEANFILES+= vers.c vers.o + +.PATH: ${.CURDIR}/../../../../lib/libkern + +all: ${BOOT_PROG} + +${BOOT_PROG}: ${BOOT_OBJS} ${HEADERSIZE_PROG} + sh ${.CURDIR}/newvers.sh ${.CURDIR}/version + ${COMPILE.c} vers.c + ${LD} -Ttext ${BOOT_RELOC} -N -e start -o ${BOOT_PROG}.coff \ + ${BOOT_OBJS} vers.o -lc # XXX + size ${BOOT_PROG}.coff + strip ${BOOT_PROG}.coff + dd if=${BOOT_PROG}.coff of=${BOOT_PROG} \ + bs=`./${HEADERSIZE_PROG} < ${BOOT_PROG}.coff` skip=1 install: - install -c -o root -g wheel -m 555 boot ${DESTDIR}/ + install -c -o bin -g bin -m 444 ${BOOT_PROG} \ + ${DESTDIR}${BINDIR}/${BOOT_PROG} -depend: ${SRCS} - mkdep -p ${INCPATH} ${DEFS} ${SRCS} - cd libsa && make depend +clean: _SUBDIRUSE + rm -f a.out [Ee]rrs mklog core *.core \ + ${BOOT_PROG} ${BOOT_OBJS} ${CLEANFILES} \ + ${BOOT_PROG}.coff ${HEADERSIZE_PROG} -newvers: - sh newvers.sh +cleandir: _SUBDIRUSE clean -vers.c: newvers +.include "${.CURDIR}/../Makefile.inc" +.include <bsd.obj.mk> +.include <bsd.dep.mk> +.include <bsd.subdir.mk> diff --git a/sys/arch/alpha/stand/boot/TODO b/sys/arch/alpha/stand/boot/TODO deleted file mode 100644 index 57c1ab2f87d..00000000000 --- a/sys/arch/alpha/stand/boot/TODO +++ /dev/null @@ -1,7 +0,0 @@ -$NetBSD: TODO,v 1.2 1995/02/16 02:32:53 cgd Exp $ - -libsa/devopen.c should replace the PMAX source code, and -they should then share it. - -Standalone programs should load against libkern, and sys/stand -should lose things like strchr() in favor of the libkern versions. diff --git a/sys/arch/alpha/stand/boot/boot.c b/sys/arch/alpha/stand/boot/boot.c index 375b0070834..0abbb15e7e8 100644 --- a/sys/arch/alpha/stand/boot/boot.c +++ b/sys/arch/alpha/stand/boot/boot.c @@ -1,4 +1,4 @@ -/* $NetBSD: boot.c,v 1.3 1995/06/28 00:58:48 cgd Exp $ */ +/* $NetBSD: boot.c,v 1.4 1995/11/23 02:39:27 cgd Exp $ */ /* * Copyright (c) 1992, 1993 @@ -39,15 +39,16 @@ */ #include <lib/libsa/stand.h> +#include <lib/libkern/libkern.h> #include <sys/param.h> #include <sys/exec.h> #include <machine/prom.h> -#include "../../include/coff.h" +#include "include/coff.h" #define _KERNEL -#include "../../include/pte.h" +#include "include/pte.h" static int aout_exec __P((int, struct exec *, u_int64_t *)); static int coff_exec __P((int, struct exechdr *, u_int64_t *)); diff --git a/sys/arch/alpha/stand/boot/conf.c b/sys/arch/alpha/stand/boot/conf.c index 9cc3d1b6621..4e81e277451 100644 --- a/sys/arch/alpha/stand/boot/conf.c +++ b/sys/arch/alpha/stand/boot/conf.c @@ -1,4 +1,4 @@ -/* $NetBSD: conf.c,v 1.2 1995/02/16 02:32:54 cgd Exp $ */ +/* $NetBSD: conf.c,v 1.3 1995/11/23 02:39:31 cgd Exp $ */ /* * Copyright (c) 1992, 1993 @@ -41,11 +41,11 @@ #include <lib/libsa/stand.h> #include <lib/libsa/ufs.h> -int errno; -int noioctl __P((void)); +#include "disk.h" + +int diskopen __P((struct open_file *, ...)); /* XXX */ -int diskstrategy(), diskopen(), diskclose(); -#define diskioctl noioctl +int errno; struct devsw devsw[] = { { "disk", diskstrategy, diskopen, diskclose, diskioctl }, /*0*/ diff --git a/sys/arch/alpha/stand/boot/libsa/devopen.c b/sys/arch/alpha/stand/boot/devopen.c index 78a8cc8efc1..33c5695b286 100644 --- a/sys/arch/alpha/stand/boot/libsa/devopen.c +++ b/sys/arch/alpha/stand/boot/devopen.c @@ -1,4 +1,4 @@ -/* $NetBSD: devopen.c,v 1.2 1995/02/16 02:33:04 cgd Exp $ */ +/* $NetBSD: devopen.c,v 1.1 1995/11/23 02:39:37 cgd Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -57,7 +57,7 @@ devopen(f, fname, file) char namebuf[20]; int rc; - cp = fname; + cp = (char *)fname; ncp = namebuf; /* look for a string like '5/rz0/vmunix' or '5/rz3f/vmunix */ diff --git a/sys/arch/alpha/stand/boot/disk.c b/sys/arch/alpha/stand/boot/disk.c index f03c0bc2daa..c80cc60a911 100644 --- a/sys/arch/alpha/stand/boot/disk.c +++ b/sys/arch/alpha/stand/boot/disk.c @@ -1,4 +1,4 @@ -/* $NetBSD: disk.c,v 1.2 1995/02/16 02:32:55 cgd Exp $ */ +/* $NetBSD: disk.c,v 1.3 1995/11/23 02:39:40 cgd Exp $ */ /* * Copyright (c) 1992, 1993 @@ -45,6 +45,8 @@ #include <machine/prom.h> +#include "disk.h" + struct disk_softc { int sc_fd; /* PROM channel number */ int sc_ctlr; /* controller number */ @@ -54,19 +56,24 @@ struct disk_softc { }; int -diskstrategy(devdata, rw, bn, reqcnt, addr, cnt) +diskstrategy(devdata, rw, bn, reqcnt, addrvoid, cnt) void *devdata; int rw; daddr_t bn; - u_int reqcnt; - char *addr; - u_int *cnt; /* out: number of bytes transfered */ + size_t reqcnt; + void *addrvoid; + size_t *cnt; /* out: number of bytes transfered */ { + char *addr = addrvoid; struct disk_softc *sc; struct partition *pp; prom_return_t ret; int s; + if ((reqcnt & 0xffffff) != reqcnt || + reqcnt == 0) + asm("call_pal 0"); + twiddle(); /* Partial-block transfers not handled. */ @@ -92,7 +99,8 @@ diskopen(f, ctlr, unit, part) { struct disklabel *lp; prom_return_t ret; - int cnt, devlen, i; + size_t cnt; + int devlen, i; char *msg, buf[DEV_BSIZE], devname[32]; static struct disk_softc *sc; diff --git a/sys/arch/alpha/stand/boot/disk.h b/sys/arch/alpha/stand/boot/disk.h new file mode 100644 index 00000000000..c60583c11e2 --- /dev/null +++ b/sys/arch/alpha/stand/boot/disk.h @@ -0,0 +1,7 @@ +/* $NetBSD: disk.h,v 1.1 1995/11/23 02:39:42 cgd Exp $ */ + +int diskstrategy __P((void *, int, daddr_t, size_t, void *, size_t *)); +/* int diskopen __P((struct open_file *, int, int, int)); */ +int diskclose __P((struct open_file *)); + +#define diskioctl noioctl diff --git a/sys/arch/alpha/stand/boot/libsa/filesystem.c b/sys/arch/alpha/stand/boot/filesystem.c index 514e6e809bf..8f963e9e673 100644 --- a/sys/arch/alpha/stand/boot/libsa/filesystem.c +++ b/sys/arch/alpha/stand/boot/filesystem.c @@ -1,4 +1,4 @@ -/* $NetBSD: filesystem.c,v 1.2 1995/02/16 02:33:05 cgd Exp $ */ +/* $NetBSD: filesystem.c,v 1.1 1995/11/23 02:39:46 cgd Exp $ */ /* * Copyright (c) 1993 Philip A. Nelson. diff --git a/sys/arch/alpha/stand/boot/libsa/Makefile b/sys/arch/alpha/stand/boot/libsa/Makefile deleted file mode 100644 index c84169984f7..00000000000 --- a/sys/arch/alpha/stand/boot/libsa/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# $NetBSD: Makefile,v 1.2 1995/02/16 02:33:03 cgd Exp $ - -LIB= sa -SRCS= alloc.c bzero.c close.c dev.c devopen.c disklabel.c getfile.c \ - gets.c ioctl.c lseek.c open.c printf.c read.c strcmp.c ufs.c \ - write.c bcopy.c filesystem.c strlen.c ntohl.c - -.PATH: ../../../../../lib/libsa ../../../../../lib/libkern -NOPIC=nopic -NOPROFILE=noprofile - -.include <bsd.lib.mk> - -CFLAGS= -mno-fp-regs -I../../../../.. -I. -DCOMPAT_UFS diff --git a/sys/arch/alpha/stand/boot/newvers.sh b/sys/arch/alpha/stand/boot/newvers.sh index 8e4737c48a6..135bb35fd58 100644 --- a/sys/arch/alpha/stand/boot/newvers.sh +++ b/sys/arch/alpha/stand/boot/newvers.sh @@ -1,6 +1,6 @@ #!/bin/sh - # -# $NetBSD: newvers.sh,v 1.1 1995/02/13 23:08:10 cgd Exp $ +# $NetBSD: newvers.sh,v 1.2 1995/11/23 02:39:48 cgd Exp $ # # Copyright (c) 1984, 1986, 1990, 1993 # The Regents of the University of California. All rights reserved. @@ -36,7 +36,7 @@ # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 u=${USER-root} h=`hostname` t=`date` -r=`head -1 version` +r=`head -1 $1` echo "char bootprog_name[] = \"NetBSD/Alpha boot\";" > vers.c echo "char bootprog_rev[] = \"${r}\";" >> vers.c diff --git a/sys/arch/alpha/stand/boot/prom.c b/sys/arch/alpha/stand/boot/prom.c deleted file mode 100644 index 92e58cfefe3..00000000000 --- a/sys/arch/alpha/stand/boot/prom.c +++ /dev/null @@ -1,135 +0,0 @@ -/* $NetBSD: prom.c,v 1.3 1995/06/28 00:58:49 cgd Exp $ */ - -/* - * Mach Operating System - * Copyright (c) 1992 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ - -#include <sys/types.h> - -#include <machine/prom.h> -#include <machine/rpb.h> - -int console; - -void -init_prom_calls() -{ - extern struct prom_vec prom_dispatch_v; - struct rpb *r; - struct crb *c; - char buf[4]; - - r = (struct rpb *)HWRPB_ADDR; - c = (struct crb *)((u_int8_t *)r + r->rpb_crb_off); - - prom_dispatch_v.routine_arg = c->crb_v_dispatch; - prom_dispatch_v.routine = c->crb_v_dispatch->code; - - /* Look for console tty. */ - prom_getenv(PROM_E_TTY_DEV, buf, 4); - console = buf[0] - '0'; -} - -void -OSFpal() -{ - struct rpb *r; - struct ctb *t; - struct pcs *p; - long result; - int offset; - - r = (struct rpb *)HWRPB_ADDR; - offset = r->rpb_pcs_size * cpu_number(); - p = (struct pcs *)((u_int8_t *)r + r->rpb_pcs_off + offset); - - printf("VMS PAL revision: 0x%lx\n", - p->pcs_palrevisions[PALvar_OpenVMS]); - printf("OSF PAL rev: 0x%lx\n", p->pcs_palrevisions[PALvar_OSF1]); - (void)switch_palcode(); - printf("Switch to OSF PAL code succeeded.\n"); -} - -int -getchar() -{ - prom_return_t ret; - - for (;;) { - ret.bits = prom_dispatch(PROM_R_GETC, console); - if (ret.u.status == 0 || ret.u.status == 1) - return (ret.u.retval); - } -} - -void -putchar(c) - int c; -{ - prom_return_t ret; - char cbuf; - - if (c == '\r' || c == '\n') { - cbuf = '\r'; - do { - ret.bits = prom_dispatch(PROM_R_PUTS, console, - &cbuf, 1); - } while ((ret.u.retval & 1) == 0); - cbuf = '\n'; - } else - cbuf = c; - do { - ret.bits = prom_dispatch(PROM_R_PUTS, console, &cbuf, 1); - } while ((ret.u.retval & 1) == 0); -} - -int -prom_getenv(id, buf, len) - int id, len; - char *buf; -{ - prom_return_t ret; - - ret.bits = prom_dispatch(PROM_R_GETENV, id, buf, len-1); - if (ret.u.status & 0x4) - ret.u.retval = 0; - buf[ret.u.retval] = '\0'; - - return (ret.u.retval); -} - -int -prom_open(dev, len) - char *dev; - int len; -{ - prom_return_t ret; - - ret.bits = prom_dispatch(PROM_R_OPEN, dev, len); - if (ret.u.status & 0x4) - return (-1); - else - return (ret.u.retval); -} diff --git a/sys/arch/alpha/stand/boot/prom_disp.S b/sys/arch/alpha/stand/boot/prom_disp.S deleted file mode 100644 index 8387dadc9b2..00000000000 --- a/sys/arch/alpha/stand/boot/prom_disp.S +++ /dev/null @@ -1,116 +0,0 @@ -/* $NetBSD: prom_disp.S,v 1.2 1995/02/16 02:32:57 cgd Exp $ */ - -/* - * Copyright (c) 1994, 1995 Carnegie-Mellon University. - * All rights reserved. - * - * Author: Chris G. Demetriou - * - * Permission to use, copy, modify and distribute this software and - * its documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND - * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie the - * rights to redistribute these changes. - */ - -#ifndef LOCORE -#include "../../include/asm.h" -#include "../../include/prom.h" -#include "../../include/rpb.h" -#endif - - .globl prom_dispatch_v - .comm prom_dispatch_v 16 - - .text - .align 4 - -/* - * Dispatcher routine. Implements prom's calling machinery, saves our - * callee-saved registers as required by C. - */ -#define D_RA (7*8) -#define D_S0 (8*8) -#define D_S1 (9*8) -#define D_S2 (10*8) -#define D_S3 (11*8) -#define D_S4 (12*8) -#define D_S5 (13*8) -#define D_S6 (14*8) -#define DISPATCH_FRAME_SIZE (15*8) -#define DISPATCH_REGS IM_RA|IM_S0|IM_S1|IM_S2|IM_S3|IM_S4|IM_S5|IM_S6 - -NESTED(prom_dispatch, 5, DISPATCH_FRAME_SIZE, ra, DISPATCH_REGS, 0) - -/* ldgp gp, 0(pv)*/ - SETGP(pv) - - lda sp, -DISPATCH_FRAME_SIZE(sp) - stq ra, D_RA(sp) - stq s0, D_S0(sp) - stq s1, D_S1(sp) - stq s2, D_S2(sp) - stq s3, D_S3(sp) - stq s4, D_S4(sp) - stq s5, D_S5(sp) - stq s6, D_S6(sp) - - /* Lord have mercy because.. I would not. */ -/* #define STUPID_PROM_IS_32_BITS */ -#ifdef STUPID_PROM_IS_32_BITS - ldah s0, 0x2000(zero) /* hack for hack */ - lda s0, (0x2000-8)(s0) - - stq sp, 0(s0) - or s0, zero, sp -#endif /* STUPID_PROM_IS_32_BITS */ - - lda pv, prom_dispatch_v - ldq v0, 0(pv) /* routine */ - ldq pv, 8(pv) /* routine_arg */ - - jsr ra, (v0) - -#ifdef STUPID_PROM_IS_32_BITS - ldah s0, 0x2000(zero) /* hack for hack */ - lda s0, (0x2000-8)(s0) - - ldq sp, 0(s0) -#endif /* STUPID_PROM_IS_32_BITS */ - - ldq ra, D_RA(sp) - ldq s0, D_S0(sp) - ldq s1, D_S1(sp) - ldq s2, D_S2(sp) - ldq s3, D_S3(sp) - ldq s4, D_S4(sp) - ldq s5, D_S5(sp) - ldq s6, D_S6(sp) - lda sp, DISPATCH_FRAME_SIZE(sp) - RET -END(prom_dispatch) - -#undef D_RA -#undef D_S0 -#undef D_S1 -#undef D_S2 -#undef D_S3 -#undef D_S4 -#undef D_S5 -#undef D_S6 -#undef DISPATCH_FRAME_SIZE -#undef DISPATCH_REGS diff --git a/sys/arch/alpha/stand/boot/start.S b/sys/arch/alpha/stand/boot/start.S deleted file mode 100644 index fe7b93a23dc..00000000000 --- a/sys/arch/alpha/stand/boot/start.S +++ /dev/null @@ -1,81 +0,0 @@ -/* $NetBSD: start.S,v 1.2 1995/02/16 02:32:59 cgd Exp $ */ - -/* - * Mach Operating System - * Copyright (c) 1992 Carnegie Mellon University - * All Rights Reserved. - * - * Permission to use, copy, modify and distribute this software and its - * documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR - * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie Mellon - * the rights to redistribute these changes. - */ - -#include "../../include/asm.h" - -/* - * start -- - * Entry point for boot/standalone programs. - * - * Arguments: - * a0 long (first free physical page) - * - * This is where the prom comes to. Leaves all exception and interrupts - * to prom, runs off prom's stack too. No return values. - */ - .text - .set noreorder /* don't reorder instructions */ - -#define ENTRY_FRAME 32 - -NESTED(start, 1, ENTRY_FRAME, ra, 0, 0) - br pv,1f /* XXX I have no idea what this does. */ -1: SETGP(pv) - - lda sp,start /* start stack below text */ - lda sp,-ENTRY_FRAME(sp) - - CALL(main) /* transfer to C */ - - call_pal PAL_halt /* halt if we ever return */ -END(start) - -/* - * Dummy routine for GCC2. - */ -LEAF(__main,0) - RET -END(__main) - -/* - * cpu_number - * Return the cpu number, using the whami instruction. - */ -LEAF(cpu_number, 0) - call_pal PAL_VMS_mfpr_whami - RET -END(cpu_number) - -/* - * halt - * Halt - */ -LEAF(halt, 0) - call_pal PAL_halt - RET -END(halt) diff --git a/sys/arch/alpha/stand/boot/version b/sys/arch/alpha/stand/boot/version index d6a53b8ab55..a7634431ffb 100644 --- a/sys/arch/alpha/stand/boot/version +++ b/sys/arch/alpha/stand/boot/version @@ -1,5 +1,7 @@ -$NetBSD: version,v 1.3 1995/06/28 00:58:52 cgd Exp $ +$NetBSD: version,v 1.4 1995/11/23 02:40:09 cgd Exp $ 1.1: Initial version 1.2: don't forget the Id string! 1.3: make it work on AlphaStations +1.4: Re-import from master sources. +1.5: Complete rewrite of boot block code. |