Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/mvme68k/stand Use the versions of dev_net.[ch] in l...
details: https://anonhg.NetBSD.org/src/rev/9f59257de765
branches: trunk
changeset: 510981:9f59257de765
user: scw <scw%NetBSD.org@localhost>
date: Sun Jun 10 14:12:48 2001 +0000
description:
Use the versions of dev_net.[ch] in libsa in order to get DHCP support.
In other words, mvme68k's "netboot" finally supports DHCP.
diffstat:
sys/arch/mvme68k/stand/libsa/Makefile | 12 +-
sys/arch/mvme68k/stand/netboot/Makefile | 5 +-
sys/arch/mvme68k/stand/netboot/boot.c | 37 ++++-
sys/arch/mvme68k/stand/netboot/conf.c | 3 +-
sys/arch/mvme68k/stand/netboot/config.h | 4 +-
sys/arch/mvme68k/stand/netboot/dev_net.c | 233 -------------------------------
sys/arch/mvme68k/stand/netboot/dev_net.h | 9 -
7 files changed, 51 insertions(+), 252 deletions(-)
diffs (truncated from 394 to 300 lines):
diff -r 2bdf17962fa6 -r 9f59257de765 sys/arch/mvme68k/stand/libsa/Makefile
--- a/sys/arch/mvme68k/stand/libsa/Makefile Sun Jun 10 13:56:13 2001 +0000
+++ b/sys/arch/mvme68k/stand/libsa/Makefile Sun Jun 10 14:12:48 2001 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.15 2000/11/30 22:26:27 scw Exp $
+# $NetBSD: Makefile,v 1.16 2001/06/10 14:12:48 scw Exp $
LIB=sa
@@ -7,15 +7,15 @@
DIR_KERN=$S/lib/libkern
SRC_net= nfs.c rpc.c net.c ether.c arp.c in_cksum.c netif.c \
- bootparam.c rarp.c
+ bootparam.c rarp.c dev_net.c bootp.c
SRC_sa = alloc.c memcpy.c memset.c close.c exit.c getfile.c gets.c \
open.c printf.c read.c strerror.c ufs.c globals.c lseek.c panic.c \
closeall.c dev.c dkcksum.c nullfs.c fstat.c twiddle.c sprintf.c \
- subr_prf.c intoa.c udp.c memcmp.c bcmp.c loadfile.c
+ subr_prf.c intoa.c udp.c memcmp.c bcmp.c loadfile.c dev_net.c
-SRC_kern= ashrdi3.c strcmp.c strlen.c
+SRC_kern= ashrdi3.c strcmp.c strlen.c strncpy.c inet_addr.c
SRC_mvme= exec_mvme.c
@@ -28,6 +28,10 @@
DEFS= ${DBG} #-fno-defer-pop
+CPPFLAGS+= -DSUPPORT_BOOTP -DSUPPORT_DHCP
+CPPFLAGS+= -DSUPPORT_RARP -DSUPPORT_BOOTPARAM
+CPPFLAGS+= -DSUPPORT_NFS -DNFS_NOSYMLINK
+
CLEANFILES+= SRT0.o
.include "../Makefile.booters"
diff -r 2bdf17962fa6 -r 9f59257de765 sys/arch/mvme68k/stand/netboot/Makefile
--- a/sys/arch/mvme68k/stand/netboot/Makefile Sun Jun 10 13:56:13 2001 +0000
+++ b/sys/arch/mvme68k/stand/netboot/Makefile Sun Jun 10 14:12:48 2001 +0000
@@ -1,15 +1,14 @@
-# $NetBSD: Makefile,v 1.12 2000/12/04 21:25:58 scw Exp $
+# $NetBSD: Makefile,v 1.13 2001/06/10 14:12:49 scw Exp $
DEFS= -DSUN_BOOTPARAMS
-SRCS= boot.c conf.c devopen.c dev_net.c
+SRCS= boot.c conf.c devopen.c
SRCS+= if_ie.c if_le.c
PROG= netboot.tmp
LIBS= ${LIBSA} ${LIBBUG}
DPADD= ${LIBS}
CLEANFILES+= netboot.bin
-
netboot.bin: ${PROG}
${OBJCOPY} -O binary ${.OBJDIR}/netboot.tmp $@
diff -r 2bdf17962fa6 -r 9f59257de765 sys/arch/mvme68k/stand/netboot/boot.c
--- a/sys/arch/mvme68k/stand/netboot/boot.c Sun Jun 10 13:56:13 2001 +0000
+++ b/sys/arch/mvme68k/stand/netboot/boot.c Sun Jun 10 14:12:48 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: boot.c,v 1.6 2000/07/24 18:39:48 jdolecek Exp $ */
+/* $NetBSD: boot.c,v 1.7 2001/06/10 14:12:49 scw Exp $ */
/*
* Copyright (c) 1982, 1986, 1990, 1993
@@ -43,6 +43,7 @@
#include "stand.h"
#include "libsa.h"
+#include "config.h"
void main(void);
@@ -86,3 +87,37 @@
ask = 1;
}
}
+
+/*
+ * machdep_common_ether: get ethernet address
+ */
+void
+machdep_common_ether(ether)
+ u_char *ether;
+{
+ u_char *ea;
+
+ if (bugargs.cputyp == CPU_147) {
+ ea = (u_char *) ETHER_ADDR_147;
+
+ if ((*(int *) ea & 0x2fffff00) == 0x2fffff00)
+ panic("ERROR: ethernet address not set!\r\n");
+ ether[0] = 0x08;
+ ether[1] = 0x00;
+ ether[2] = 0x3e;
+ ether[3] = ea[0];
+ ether[4] = ea[1];
+ ether[5] = ea[2];
+ } else {
+ ea = (u_char *) ETHER_ADDR_16X;
+
+ if (ea[0] + ea[1] + ea[2] + ea[3] + ea[4] + ea[5] == 0)
+ panic("ERROR: ethernet address not set!\r\n");
+ ether[0] = ea[0];
+ ether[1] = ea[1];
+ ether[2] = ea[2];
+ ether[3] = ea[3];
+ ether[4] = ea[4];
+ ether[5] = ea[5];
+ }
+}
diff -r 2bdf17962fa6 -r 9f59257de765 sys/arch/mvme68k/stand/netboot/conf.c
--- a/sys/arch/mvme68k/stand/netboot/conf.c Sun Jun 10 13:56:13 2001 +0000
+++ b/sys/arch/mvme68k/stand/netboot/conf.c Sun Jun 10 14:12:48 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: conf.c,v 1.3 1996/05/17 21:08:38 chuck Exp $ */
+/* $NetBSD: conf.c,v 1.4 2001/06/10 14:12:49 scw Exp $ */
#include <sys/types.h>
#include <netinet/in.h>
@@ -32,3 +32,4 @@
int netif_debug;
int debug;
int errno;
+int try_bootp = 1;
diff -r 2bdf17962fa6 -r 9f59257de765 sys/arch/mvme68k/stand/netboot/config.h
--- a/sys/arch/mvme68k/stand/netboot/config.h Sun Jun 10 13:56:13 2001 +0000
+++ b/sys/arch/mvme68k/stand/netboot/config.h Sun Jun 10 14:12:48 2001 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: config.h,v 1.1 1996/05/17 21:17:58 chuck Exp $ */
+/* $NetBSD: config.h,v 1.2 2001/06/10 14:12:49 scw Exp $ */
/*
* Copyright (c) 1995 Theo de Raadt
@@ -64,3 +64,5 @@
u_short devnum;
u_long bug;
};
+
+void machdep_common_ether __P((u_char *));
diff -r 2bdf17962fa6 -r 9f59257de765 sys/arch/mvme68k/stand/netboot/dev_net.c
--- a/sys/arch/mvme68k/stand/netboot/dev_net.c Sun Jun 10 13:56:13 2001 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-/* $NetBSD: dev_net.c,v 1.8 2000/07/24 18:39:49 jdolecek Exp $ */
-
-/*
- * Copyright (c) 1995 Gordon W. Ross
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- * 4. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Gordon W. Ross
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * This module implements a "raw device" interface suitable for
- * use by the stand-alone I/O library NFS code. This interface
- * does not support any "block" access, and exists only for the
- * purpose of initializing the network interface, getting boot
- * parameters, and performing the NFS mount.
- *
- * At open time, this does:
- *
- * find interface - netif_open()
- * RARP for IP address - rarp_getipaddress()
- * RPC/bootparams - callrpc(d, RPC_BOOTPARAMS, ...)
- * RPC/mountd - nfs_mount(sock, ip, path)
- *
- * the root file handle from mountd is saved in a global
- * for use by the NFS open code (NFS/lookup).
- */
-
-#include <sys/param.h>
-#include <sys/socket.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-
-#include <machine/prom.h>
-#include <machine/stdarg.h>
-
-#include <lib/libkern/libkern.h>
-#include <lib/libsa/stand.h>
-#include <lib/libsa/nfs.h>
-
-#include "libsa.h"
-#include "net.h"
-#include "netif.h"
-#include "config.h"
-#include "bootparam.h"
-#include "dev_net.h"
-
-extern int nfs_root_node[]; /* XXX - get from nfs_mount() */
-
-struct in_addr myip, rootip, gateip, mask;
-char rootpath[FNAME_SIZE];
-
-int netdev_sock = -1;
-static int open_count;
-
-/*
- * Called by devopen() after it sets f->f_dev to our devsw entry.
- * This opens the low-level device and sets f->f_devdata.
- */
-int
-net_open(struct open_file *f, ...)
-{
- char *devname; /* Device part of file name (or NULL). */
- int error = 0;
- va_list ap;
-
- /* get devname */
- va_start(ap, f);
- devname = va_arg(ap, char *);
- va_end(ap);
-
- /* On first open, do netif open, mount, etc. */
- if (open_count == 0) {
- /* Find network interface. */
- if ((netdev_sock = netif_open(devname)) < 0)
- return (error=ENXIO);
- if ((error = net_mountroot(f, devname)) != 0)
- return (error);
- }
- open_count++;
- f->f_devdata = nfs_root_node;
- return (error);
-}
-
-int
-net_close(f)
- struct open_file *f;
-{
- /* On last close, do netif close, etc. */
- if (open_count > 0)
- if (--open_count == 0)
- netif_close(netdev_sock);
- f->f_devdata = NULL;
-
- return (0);
-}
-
-int
-net_ioctl(f, cmd, data)
- struct open_file *f;
- u_long cmd;
- void *data;
-{
- return EIO;
-}
-
-int
-net_strategy(devdata, rw, blk, size, buf, rsize)
- void *devdata;
- int rw;
- daddr_t blk;
- size_t size;
- void *buf;
- size_t *rsize;
-{
- return EIO;
-}
-
-int
-net_mountroot(f, devname)
- struct open_file *f;
- char *devname; /* Device part of file name (or NULL). */
-{
- int error;
-
-#ifdef DEBUG
- printf("net_mountroot: %s\n", devname);
-#endif
-
Home |
Main Index |
Thread Index |
Old Index