aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/usr.bin/man/manpath/manpath.config2
-rw-r--r--release/miscfuncs.sh4
-rw-r--r--release/netinst.sh3
-rw-r--r--share/FAQ/CONTRIB.FreeBSD25
-rw-r--r--share/FAQ/FreeBSD.FAQ101
-rw-r--r--share/FAQ/README-2.043
-rw-r--r--share/FAQ/TROUBLESHOOTING59
-rw-r--r--sys/i386/pci/if_de.c104
-rw-r--r--sys/pci/if_de.c104
-rw-r--r--sys/vm/vm_swap.c4
10 files changed, 304 insertions, 145 deletions
diff --git a/gnu/usr.bin/man/manpath/manpath.config b/gnu/usr.bin/man/manpath/manpath.config
index 677b1adec5e4..b43c7a6aee27 100644
--- a/gnu/usr.bin/man/manpath/manpath.config
+++ b/gnu/usr.bin/man/manpath/manpath.config
@@ -18,7 +18,6 @@ MANDATORY_MANPATH /usr/share/man
MANDATORY_MANPATH /usr/local/man
MANDATORY_MANPATH /usr/X386/man
MANDATORY_MANPATH /usr/X11R6/man
-MANDATORY_MANPATH /usr/gnu/man
#
# set up PATH to MANPATH mapping
#
@@ -27,6 +26,5 @@ MANPATH_MAP /usr/bin /usr/share/man
MANPATH_MAP /usr/ucb /usr/share/man
MANPATH_MAP /usr/local/mh /usr/local/mh/man
MANPATH_MAP /usr/local/bin /usr/local/man
-MANPATH_MAP /usr/gnu /usr/gnu/man
MANPATH_MAP /usr/X386/bin /usr/X386/man
MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man
diff --git a/release/miscfuncs.sh b/release/miscfuncs.sh
index 7867540cfd47..c2c45ecaa0b7 100644
--- a/release/miscfuncs.sh
+++ b/release/miscfuncs.sh
@@ -10,7 +10,7 @@
# putting your name on top after doing something trivial like reindenting
# it, just to make it look like you wrote it!).
#
-# $Id: miscfuncs.sh,v 1.8 1994/11/21 06:45:01 jkh Exp $
+# $Id: miscfuncs.sh,v 1.9 1994/11/21 07:33:21 jkh Exp $
if [ "$_MISCFUNCS_SH_LOADED_" = "yes" ]; then
return 0
@@ -22,7 +22,7 @@ PATH=/usr/bin:/usr/sbin:/bin:/sbin:/stand
export PATH
# Keep this current with the distribution!
-DISTNAME=2.0-BETA
+DISTNAME=2.0-RELEASE
# Flagrant guesses for now. These need to be hand-edited or, much better yet,
# automatically done as part of the release process. When that's the case,
diff --git a/release/netinst.sh b/release/netinst.sh
index 8a5ce20d2486..c66d11f358a4 100644
--- a/release/netinst.sh
+++ b/release/netinst.sh
@@ -10,7 +10,7 @@
# putting your name on top after doing something trivial like reindenting
# it, just to make it look like you wrote it!).
#
-# $Id: netinst.sh,v 1.9 1994/11/21 05:36:01 jkh Exp $
+# $Id: netinst.sh,v 1.10 1994/11/21 08:33:56 jkh Exp $
if [ "$_NETINST_SH_LOADED_" = "yes" ]; then
return 0
@@ -31,6 +31,7 @@ network_set_defaults()
hostname=""
domain=""
ipaddr="127.0.0.1"
+ serial_interface="/dev/tty00"
}
network_basic_setup()
diff --git a/share/FAQ/CONTRIB.FreeBSD b/share/FAQ/CONTRIB.FreeBSD
index a3f6d29d6746..2b72fa4c14f6 100644
--- a/share/FAQ/CONTRIB.FreeBSD
+++ b/share/FAQ/CONTRIB.FreeBSD
@@ -15,17 +15,22 @@ contributors.
There are also portions of NetBSD that have been integrated into FreeBSD
as well, and we would therefore like to thank all the contributors
to NetBSD for their work. Despite some occasionally rocky moments in
-the relations between the two groups, we both want essentially the same
+relations between the two groups, we both want essentially the same
thing: More BSD based operating systems on people's computers! We
wish the NetBSD group every success in their endevors.
Hardware Contributors:
-A special thank-you to Walnut Creek CDROM for providing the 486/DX2-66 EISA/VL
-system that is being used for our development work, to say nothing of
-the network access and other donations of hardware resources. It would have
-been impossible to do this release without their support.
+A special thank-you to Walnut Creek CDROM for providing two
+486/DX2-66 EISA/VL systems that are being used for our development work,
+to say nothing of the network access and other donations of hardware
+resources. It would have been impossible to do this release without
+their support.
+
+TRW Financial Systems, Inc. provided 130 PCs, three 68 GB fileservers,
+twelve ethernets, two routers and an ATM switch for debugging the diskless
+code. They also keep a couple of FreeBSD hackers alive and busy. Thanks!
Thanks also to Dermot McDonnell for his donation of a Toshiba XM3401B CDROM
drive. It's been most useful!
@@ -50,7 +55,7 @@ The FreeBSD Core Team (in alphabetical order):
Soren Schmidt <sos@FreeBSD.org>
-Additional FreeBSD Contributors (no particular order):
+Additional FreeBSD Contributors (in alphabetical order):
Adam Glass <glass@postgres.berkeley.edu>
Andrew Herbert <andrew@werple.apana.org.au>
@@ -101,7 +106,7 @@ Ugen J.S.Antsilevich <ugen@NetVision.net.il>
Yuval Yarom <yval@cs.huji.ac.il>
-386BSD Patch kit patch contributors (no particular order):
+386BSD Patch kit patch contributors (in alphabetical order):
Adam Glass <glass@postgres.berkeley.edu>
Adrian Hall <adrian@ibmpcug.co.uk>
@@ -192,4 +197,8 @@ Wolfgang Solfrank <ws@tools.de>
Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Yuval Yarom <yval@cs.huji.ac.il>
-$Id: CONTRIB.FreeBSD,v 1.36 1994/06/28 08:09:27 jkh Exp $
+Last, but not least, the release engineer would like to thank:
+ His Wife, for chocolate chip cookies, and some other things.
+ The DGB project @ TFS, for patience and tolerance.
+
+$Id: CONTRIB.FreeBSD,v 1.2 1994/11/22 09:16:46 phk Exp $
diff --git a/share/FAQ/FreeBSD.FAQ b/share/FAQ/FreeBSD.FAQ
index 448992106102..2e86c1c5d81c 100644
--- a/share/FAQ/FreeBSD.FAQ
+++ b/share/FAQ/FreeBSD.FAQ
@@ -6,7 +6,7 @@
Please mail all suggestions and additions to <FreeBSD-FAQ@FreeBSD.ORG>
-Revision: $Id: FreeBSD.FAQ,v 1.6 1994/10/10 10:39:09 gclarkii Exp $
+Revision: $Id: FreeBSD.FAQ,v 1.8 1994/11/22 06:48:38 jkh Exp $
All entries are assumed to be relevant to FreeBSD 2.0.
Any entries with a <XXX> are under construction.
@@ -36,7 +36,7 @@ the most frequently asked questions about FreeBSD 2.0.
If there's something you're having trouble with and you do not see it
here, please send email to:
- <FreeBSD-questions@FreeBSD.ORG>
+ <questions@FreeBSD.ORG>
Some of the instructions here will also refer to auxiliary utilities
@@ -45,12 +45,12 @@ who've grabbed the FreeBSD 2.0 `srcdist' will have these files. If
you don't have the source distribution, then you can either grab the
whole thing from:
- ftp.FreeBSD.ORG:pub/FreeBSD/FreeBSD-current
+ ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current
Or you can grab only those files you're interested in straight out of
the FreeBSD-current distribution in:
- ftp.FreeBSD.ORG:pub/FreeBSD/FreeBSD-current/src
+ ftp://ftp.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src
0.1: What is FreeBSD?
@@ -79,25 +79,24 @@ developers. For more information, send to
<majordomo@FreeBSD.ORG> and include a single line saying
``help'' in the body of your message.
-freebsd-announce: For announcements about or on FreeBSD.
-freebsd-hackers: Useful for persons wishing to work on the internals.
-freebsd-questions: General questions on FreeBSD.
-freebsd-bugs: Where bugs should be sent.
-freebsd-SCSI: Mailing list for SCSI developers.
-freebsd-current: This list is for persons wishing to run FreeBSD-current
- and carries announcements and discussions on current.
-freebsd-security: For issues dealing with system security.
-freebsd-platforms: Deals with ports to non-intel platforms
-freebsd-ports: Discussion of /usr/ports/???
-freebsd-fs: Discussion of FreeBSD Filesystems
-
+announce: For announcements about or on FreeBSD.
+hackers: Useful for persons wishing to work on the internals.
+questions: General questions on FreeBSD.
+bugs: Where bugs should be sent.
+SCSI: Mailing list for SCSI developers.
+current: This list is for persons wishing to run FreeBSD-current
+ and carries announcements and discussions on current.
+security: For issues dealing with system security.
+platforms: Deals with ports to non-Intel platforms
+ports: Discussion of /usr/ports/???
+fs: Discussion of FreeBSD Filesystems
+hardware: Discussion on hardware requirements for FreeBSD.
The FreeBSD-commit list has been broken up into groups dealing with different
-areas of intrest.
+areas of interest. Please see the FreeBSD mailing list FAQ in:
-Please see also the FreeBSD mailing list FAQ in:
+ /usr/src/share/FAQ/mailing-list.FAQ
- /usr/src/share/FAQ/FreeBSD.mailing-list.FAQ
0.3: What are the various FreeBSD news groups?
@@ -341,6 +340,9 @@ There is support for the following cards:
3Com 3c503
And clones of the above
+`de' driver:
+ DEC and compatible PCI controllers.
+
`ie' driver:
AT&T EN100/StarLAN 10
3Com 3c507
@@ -358,9 +360,6 @@ There is support for the following cards:
`ze' driver:
IBM PCMCIA credit card adapter
-(*)The `ep' and `el' driver is known to have some problems; see the
-/usr/src/KNOWNBUGS file for more details.
-
2.11: I have a 386/486sx/486SLC machine without a math co-processor.
Will this cause me any problems?
@@ -378,7 +377,7 @@ clones.
want an idea of what other people are running. Is there list
of other systems anywhere?
-Yes. Please look at the file FAQ/OTHER-FAQS/Systems.FAQ. This file
+Yes. Please look at the file Systems.FAQ. This file
is a listing of hardware that people are running in their machines.
Please note, this is a raw listing of equipment that other users
have sent in.
@@ -397,8 +396,58 @@ viability). We encourage commercial software vendors to send their
entries here for inclusion.
-<XXX> 3.1: Where can I get Motif for FreeBSD?
+3.1: Where can I get Motif for FreeBSD?
+
+You can purchase Motif 1.2.3 for FreeBSD (SWiM) from the ACC Bookstore,
+P.O. Box 3364, Westport CT. 06880. 1-800-546-7274 or FAX: 1-203-454-2582
+
+This software works flawlessly for for FreeBSD 1.1.5 but has shown
+one problem with 2.0 in that the "uil" program core dumps. This is
+apparently because of the way uil is installed, and it's quite possible
+that ACC will have a fixed version by the time you read this. No
+other compatibility problems with the programs or libraries have been
+found, and ACC can hardly be blamed for failing to work perfectly with
+a brand-new release they haven't even seen yet! :)
+
+
+3.2: Are there any commercial X servers for some of the high-end
+ graphics cards like the Matrox or #9 I-128, or offering 8/16/24
+ bit deep pallettes?
+
+Yes, X Inside Incorporated sells their Accelerated-X product for
+FreeBSD and other Intel based systems.
+
+This high performance X Server offers easy configuration, support
+for multiple concurrent video boards and is distributed in binary
+form only.
+
+Price is $99.50 (promotional price for Linux/FreeBSD version) for
+the 1.1 version, which is available now.
+
+This product is for FreeBSD 1.1 and runs under 2.0 with the FreeBSD 1.1
+compatibility libs (`compat1xdist').
+
+More info: URL http://www.xinside.com/
+ or URL ftp://ftp.xinside.com/accelx/1.1/prodinfo.txt
+ or email info@xinside.com
+ or phone +1(303)384-9999
+
+
+3.3: Any other applications I might be interested in?
+
+Rendermorphics, Inc. sells a high-speed 3D rendering package for
+FreeBSD called "Reality Lab" (tm). Send email to dfr@render.demon.co.uk
+or call: +44(0)71-251-4411 / FAX: +44(0)71-251-0939
+
+This package is also for FreeBSD 1.1.5 but has been tested and shown
+to run under FreeBSD 2.0 with the compat1xdist installed.
+Thanks must be extended to all of these companies for showing enough faith
+in FreeBSD to port their products to it. While we get no direct benefit
+from the sales of these products, the indirect benefits of FreeBSD
+proving itself to be a successful platform for such commercial interests
+will be immense! We wish these companies every measure of success, and
+can only hope that others are encouraged to follow suit.
4 User Applications
@@ -412,8 +461,10 @@ the instructions for installation carefully. You may then wish to read
the documentation for the ConfigXF86 tool, which assists you in
configuring XFree86 for your particular graphics card/mouse/etc.
+You may also wish to investigate the Xaccel server, which is available
+at a very reasonable price. See section 3.2 for more details.
-4.1: I've been trying to run ghostscript on a 386 (or 486sx) with no
+4.2: I've been trying to run ghostscript on a 386 (or 486sx) with no
math co-processor and I keep getting errors. What's up?
You will need to add the alternate math emulator to your kernel, you do this
diff --git a/share/FAQ/README-2.0 b/share/FAQ/README-2.0
index 2c2fc0d37514..c9d81f9e361c 100644
--- a/share/FAQ/README-2.0
+++ b/share/FAQ/README-2.0
@@ -1,28 +1,29 @@
Use PageUp, PageDown or Arrow keys to navigate this screen.
-----------------------------------------
- FreeBSD 2.0 --- BETA Release , ,
+ FreeBSD 2.0 --- RELEASE Version , ,
----------------------------------------- /( )`
\ \___ / |
-Welcome to the BETA release of FreeBSD 2.0 - the /- _ `-/ '
+Welcome to the first public release of FreeBSD 2.0 /- _ `-/ '
first public snapshot of our new 4.4BSD Lite based (/\/ \ \ /\
-operating system environment. This install proce- / / | ` \
-dure is also at the BETA stage, and contains only O O ) / |
-the minimum functionality required by an `-^--'`< '
-*EXPERIENCED* person to install the system. (_.) _ ) /
-It is our hope, of course, that the feedback `.___/` /
-provided from this snapshot will `-----' /
-greatly assist us in making the release <----. __ / __ \
-of 2.0 much more user friendly. Your <----|====O)))==) \) /====
-comments and criticisms are very <----' `--' `.__,' \
-valuable to us, so please don't hesitate | |
-in contacting us! Full details on where and \ / /\
-how to provide feedback are given below. ______( (_ / \______/
- ,' ,-----' |
-This install procedure is BETA code, and `--{__________)
-may very possibly *DESTROY* the contents of your
-ENTIRE DISK! Please do not proceed with this installation
-unless you've adequately backed up your data first!
+operating system environment. Our installation / / | ` \
+procedure has been completely revamped, and should O O ) / |
+now be much easier for both the novice and `-^--'`< '
+experienced user alike. We've also gone to some (_.) _ ) /
+care to make the process of installing the `.___/` /
+subsequent bindist and other miscellaneous `-----' /
+distributions considerably more seamless <----. __ / __ \
+as well as offering a greater variety <----|====O)))==) \) /====
+of installation methods and options. <----' `--' `.__,' \
+ | |
+We hope you'll find this new process as enjoyable \ / /\
+to use as it was to write! (No, really, it ______( (_ / \______/
+was! :-) ,' ,-----' |
+ `--{__________)
+Disclaimer: Please note that despite numerous
+safeguards, it's still more than possible to WIPE OUT YOUR ENTIRE DISK
+with this installation! Please do not proceed unless you've
+adequately backed up any important data first! We really mean it!
If any errors occur during this installation, you can see them
by toggling over to the alternate screen. Type ALT-F2 to switch
@@ -31,6 +32,10 @@ The debugging output on the second screen may be very valuable to us in
understanding your bug report, so please be sure to take note of it when
reporting any failures in the installation! Thanks!
+You may also wish to read the TROUBLESHOOTING document in _advance_
+and perhaps save yourself from making those sorts of errors in
+the first place! :-)
+
Menus and scrolling output windows may be traversed with the arrow,
PageUp/PageDown and TAB keys. To suspend the installation at any point,
hit ESC twice. If you've ever dealt with a DOS installation before, then
diff --git a/share/FAQ/TROUBLESHOOTING b/share/FAQ/TROUBLESHOOTING
index 627e205776e6..acc0e3a209d6 100644
--- a/share/FAQ/TROUBLESHOOTING
+++ b/share/FAQ/TROUBLESHOOTING
@@ -54,6 +54,65 @@ Solution: There are several possible solutions. The first,
---
+Summary: When I boot for the first time, it still looks for /386bsd!
+
+Cause: You still have the old FreeBSD 1.x boot blocks on your
+ boot partition.
+
+Solution: You should re-enter the installation process, invoke
+ the (F)disk editor and chose the (W)rite option. This
+ won't hurt an existing installation and will make sure
+ that the new boot blocks get written to the drive.
+ If you're installing for the first time, don't forget
+ to (W)rite out your new boot blocks! :-)
+
+---
+
+Summary: I want to boot FreeBSD off the second drive. It doesn't!
+
+Cause: FreeBSD will actually install just fine on a drive other
+ than 0 (the first drive), and the boot manager will even
+ allow you to select it, but the boot blocks rather
+ pathologically assume 0. This should be fixed in 2.1.
+
+Solution: Easy - follow these steps:
+
+ 1. Select the first (0) drive from the (F)disk editor
+ and write out the boot manager with the (B) option.
+ This will enable the boot manager that allows you to
+ actually boot off the other drive.
+
+ 2. Exit the fdisk editor for the first drive and and
+ re-enter it again for the drive you wish to install
+ on. Set up a partition on this drive, or select
+ (A)ll for the entire drive.
+
+ 3. Enter the disklabel editor and allocate space on
+ your second drive as normal. Proceed with the
+ installation.
+
+ 4. Once you've installed on the disk and are going to
+ reboot from the hard disk, enter the following at
+ the boot prompt:
+
+ hd(1,a)/kernel
+
+ This will ensure that you really boot from the second
+ drive. If you've actually installed on a drive other
+ than 1 (the 3rd or 4th drive?), substitute that number
+ in for the above. You will need to enter this EVERY
+ time you reboot from the hard disk. If you're feeling
+ brave and have a srcdist + the requisite experience,
+ you can hack the boot blocks in:
+
+ /usr/src/sys/i386/boot/biosboot
+
+ So that this drive you're booting from is hard-coded.
+ Recompile the boot blocks and reinstall them on your
+ drive with `disklabel -B ...' You can then have the
+ default Do The Right Thing.
+---
+
Summary: Newfs crashes, requesting that blocksize be 32K
Cause: You have your SCSI controller configured to translate
diff --git a/sys/i386/pci/if_de.c b/sys/i386/pci/if_de.c
index e88cfb3d01d9..9e6a26b56ea7 100644
--- a/sys/i386/pci/if_de.c
+++ b/sys/i386/pci/if_de.c
@@ -21,7 +21,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: if_de.c,v 1.5 1994/11/10 02:56:48 davidg Exp $
+ * $Id: if_de.c,v 1.6 1994/11/13 12:39:38 davidg Exp $
*
*/
@@ -35,31 +35,29 @@
* board which support DC21040.
*/
-#include <de.h>
+#include "de.h"
#if NDE > 0
-#include <param.h>
-#include <systm.h>
-#include <mbuf.h>
-#include <protosw.h>
-#include <socket.h>
-#include <ioctl.h>
-#include <errno.h>
-#include <malloc.h>
-#include <syslog.h>
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/mbuf.h>
+#include <sys/protosw.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <sys/errno.h>
+#include <sys/malloc.h>
#include <net/if.h>
#include <net/if_types.h>
#include <net/if_dl.h>
#include <net/route.h>
-#include <bpfilter.h>
+#include "bpfilter.h"
#if NBPFILTER > 0
#include <net/bpf.h>
#include <net/bpfdesc.h>
#endif
-
#ifdef INET
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -127,18 +125,18 @@ typedef struct {
* buffers must be longword aligned. But since Ethernet
* headers are not a multiple of longwords in size this forces
* the data to non-longword aligned. Since IP requires the
- * data to be longword aligned, we can to copy it after it has
+ * data to be longword aligned, we need to copy it after it has
* been DMA'ed in our memory.
*
* Since we have to copy it anyways, we might as well as allocate
* dedicated receive space for the input. This allows to use a
* small receive buffer size and more ring entries to be able to
- * better keep with a foold of tiny Ethernet packets.
+ * better keep with a flood of tiny Ethernet packets.
*
* The receive space MUST ALWAYS be a multiple of the page size.
* And the number of receive descriptors multiplied by the size
* of the receive buffers must equal the recevive space. This
- * is that we can manipulate the page tables so that even if a
+ * is so that we can manipulate the page tables so that even if a
* packet wraps around the end of the receive space, we can
* treat it as virtually contiguous.
*/
@@ -189,16 +187,16 @@ tulip_chipid_t tulip_chipids[NDE];
#define TULIP_CRC32_POLY 0xEDB88320UL /* CRC-32 Poly -- Little Endian */
#define TULIP_CHECK_RXCRC 0
-#define TULIP_MAX_TXSEG 32
+#define TULIP_MAX_TXSEG 30
#define TULIP_ADDREQUAL(a1, a2) \
(((u_short *)a1)[0] == ((u_short *)a2)[0] \
- || ((u_short *)a1)[1] == ((u_short *)a2)[1] \
- || ((u_short *)a1)[2] == ((u_short *)a2)[2])
+ && ((u_short *)a1)[1] == ((u_short *)a2)[1] \
+ && ((u_short *)a1)[2] == ((u_short *)a2)[2])
#define TULIP_ADDRBRDCST(a1) \
(((u_short *)a1)[0] == 0xFFFFU \
- || ((u_short *)a1)[1] == 0xFFFFU \
- || ((u_short *)a1)[2] == 0xFFFFU)
+ && ((u_short *)a1)[1] == 0xFFFFU \
+ && ((u_short *)a1)[2] == 0xFFFFU)
static void tulip_start(struct ifnet *ifp);
static void tulip_addr_filter(tulip_softc_t *sc);
@@ -459,11 +457,14 @@ tulip_tx_intr(
* We've just finished processing a setup packet.
* Mark that we can finished it. If there's not
* another pending, startup the TULIP receiver.
+ * Make sure we ack the RXSTOPPED so we won't get
+ * an abormal interrupt indication.
*/
sc->tulip_flags &= ~TULIP_DOINGSETUP;
if ((sc->tulip_flags & TULIP_WANTSETUP) == 0) {
sc->tulip_cmdmode |= TULIP_CMD_RXRUN;
sc->tulip_intrmask |= TULIP_STS_RXSTOPPED;
+ *sc->tulip_csrs.csr_status = TULIP_STS_RXSTOPPED;
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
*sc->tulip_csrs.csr_intr = sc->tulip_intrmask;
}
@@ -516,7 +517,7 @@ tulip_txsegment(
}
}
if (segcnt >= maxseg) {
- printf("%s%d: tulip_txsegment: extremely fragmented packet dropped (%d segments)\n",
+ printf("%s%d: tulip_txsegment: extremely fragmented packet encountered (%d segments)\n",
sc->tulip_name, sc->tulip_unit, segcnt);
return -1;
}
@@ -583,7 +584,6 @@ tulip_start(
segcnt = tulip_txsegment(sc, m, addrvec,
min(ri->ri_max - 1, TULIP_MAX_TXSEG));
if (segcnt < 0) {
-#if 0
struct mbuf *m0;
MGETHDR(m0, M_DONTWAIT, MT_DATA);
if (m0 != NULL) {
@@ -594,18 +594,15 @@ tulip_start(
continue;
}
}
- m_copydata(m, 0, mtod(m0, caddr_t), m->m_pkthdr.len);
+ m_copydata(m, 0, m0->m_pkthdr.len, mtod(m0, caddr_t));
m0->m_pkthdr.len = m0->m_len = m->m_pkthdr.len;
m_freem(m);
IF_PREPEND(ifq, m0);
continue;
} else {
-#endif
m_freem(m);
continue;
-#if 0
}
-#endif
}
if (ri->ri_free - 2 <= (segcnt + 1) >> 1)
break;
@@ -635,18 +632,18 @@ tulip_start(
if (++ri->ri_nextout == ri->ri_last)
ri->ri_nextout = ri->ri_first;
} while ((segcnt -= 2) > 0);
-
+#if NBPFILTER > 0
+ if (sc->tulip_bpf != NULL)
+ bpf_mtap(sc->tulip_bpf, m);
+#endif
/*
* The descriptors have been filled in. Mark the first
* and last segments, indicate we want a transmit complete
* interrupt, give the descriptors to the TULIP, and tell
* it to transmit!
*/
+
IF_ENQUEUE(&sc->tulip_txq, m);
-#if NBPFILTER > 0
- if (sc->tulip_bpf)
- bpf_mtap(sc->tulip_bpf, m);
-#endif
eop->d_flag |= TULIP_DFLAG_TxLASTSEG|TULIP_DFLAG_TxWANTINTR;
sop->d_flag |= TULIP_DFLAG_TxFIRSTSEG;
sop->d_status = TULIP_DSTS_OWNER;
@@ -675,17 +672,17 @@ tulip_intr(
return 1;
}
}
+ if (csr & TULIP_STS_ABNRMLINTR) {
+ printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
+ sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
+ *sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
+ }
if (csr & TULIP_STS_RXINTR)
tulip_rx_intr(sc);
if (sc->tulip_txinfo.ri_free < sc->tulip_txinfo.ri_max) {
tulip_tx_intr(sc);
tulip_start(&sc->tulip_if);
}
- if (csr & TULIP_STS_ABNRMLINTR) {
- printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
- sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
- *sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
- }
}
return 1;
}
@@ -710,8 +707,29 @@ tulip_read_macaddr(
sc->tulip_rombuf[idx] = csr & 0xFF;
}
- if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0)
- return -4;
+ if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0) {
+ /*
+ * Some folks don't use the standard ethernet rom format
+ * but instead just put the address in the first 6 bytes
+ * of the rom and let the rest be all 0xffs. (Can we say
+ * ZNYX???)
+ */
+ for (idx = 6; idx < 32; idx++) {
+ if (sc->tulip_rombuf[idx] != 0xFF)
+ return -4;
+ }
+ /*
+ * Make sure the address is not multicast or locally assigned
+ * that the OUI is not 00-00-00.
+ */
+ if ((sc->tulip_rombuf[0] & 3) != 0)
+ return -4;
+ if (sc->tulip_rombuf[0] == 0 && sc->tulip_rombuf[1] == 0
+ && sc->tulip_rombuf[2] == 0)
+ return -4;
+ bcopy(sc->tulip_rombuf, sc->tulip_hwaddr, 6);
+ return 0;
+ }
if (bcmp(&sc->tulip_rombuf[24], testpat, 8) != 0)
return -3;
@@ -846,6 +864,7 @@ tulip_ioctl(
#ifdef INET
case AF_INET: {
((struct arpcom *)ifp)->ac_ipaddr = IA_SIN(ifa)->sin_addr;
+ tulip_addr_filter(sc); /* reset multicast filtering */
(*ifp->if_init)(ifp->if_unit);
arpwhohas((struct arpcom *)ifp, &IA_SIN(ifa)->sin_addr);
break;
@@ -939,7 +958,6 @@ tulip_attach(
tulip_softc_t *sc)
{
struct ifnet *ifp = &sc->tulip_if;
- struct ifaddr *ifa = ifp->if_addrlist;
int cnt;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS | IFF_MULTICAST;
@@ -1052,11 +1070,11 @@ tulip_pci_probe(
if (tulips[idx] == NULL) {
if (device_id == 0x00021011ul) {
tulip_chipids[idx] = TULIP_DC21040;
- return "digital dc21040 ethernet";
+ return "Digital DC21040 Ethernet";
}
if (device_id == 0x00091011ul) {
tulip_chipids[idx] = TULIP_DC21140;
- return "digital dc21140 fast ethernet";
+ return "Digital DC21140 Fast Ethernet";
}
return NULL;
}
@@ -1125,7 +1143,7 @@ tulip_pci_attach(
for (idx = 0; idx < 32; idx++)
printf("%02x", sc->tulip_rombuf[idx]);
printf("\n");
- printf("%s%d: %s %d.%d ethernet address %s\n",
+ printf("%s%d: %s pass %d.%d ethernet address %s\n",
sc->tulip_name, sc->tulip_unit,
tulip_chipdescs[tulip_chipids[sc->tulip_unit]],
(sc->tulip_revinfo & 0xF0) >> 4, sc->tulip_revinfo & 0x0F,
diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c
index e88cfb3d01d9..9e6a26b56ea7 100644
--- a/sys/pci/if_de.c
+++ b/sys/pci/if_de.c
@@ -21,7 +21,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: if_de.c,v 1.5 1994/11/10 02:56:48 davidg Exp $
+ * $Id: if_de.c,v 1.6 1994/11/13 12:39:38 davidg Exp $
*
*/
@@ -35,31 +35,29 @@
* board which support DC21040.
*/
-#include <de.h>
+#include "de.h"
#if NDE > 0
-#include <param.h>
-#include <systm.h>
-#include <mbuf.h>
-#include <protosw.h>
-#include <socket.h>
-#include <ioctl.h>
-#include <errno.h>
-#include <malloc.h>
-#include <syslog.h>
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/mbuf.h>
+#include <sys/protosw.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <sys/errno.h>
+#include <sys/malloc.h>
#include <net/if.h>
#include <net/if_types.h>
#include <net/if_dl.h>
#include <net/route.h>
-#include <bpfilter.h>
+#include "bpfilter.h"
#if NBPFILTER > 0
#include <net/bpf.h>
#include <net/bpfdesc.h>
#endif
-
#ifdef INET
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -127,18 +125,18 @@ typedef struct {
* buffers must be longword aligned. But since Ethernet
* headers are not a multiple of longwords in size this forces
* the data to non-longword aligned. Since IP requires the
- * data to be longword aligned, we can to copy it after it has
+ * data to be longword aligned, we need to copy it after it has
* been DMA'ed in our memory.
*
* Since we have to copy it anyways, we might as well as allocate
* dedicated receive space for the input. This allows to use a
* small receive buffer size and more ring entries to be able to
- * better keep with a foold of tiny Ethernet packets.
+ * better keep with a flood of tiny Ethernet packets.
*
* The receive space MUST ALWAYS be a multiple of the page size.
* And the number of receive descriptors multiplied by the size
* of the receive buffers must equal the recevive space. This
- * is that we can manipulate the page tables so that even if a
+ * is so that we can manipulate the page tables so that even if a
* packet wraps around the end of the receive space, we can
* treat it as virtually contiguous.
*/
@@ -189,16 +187,16 @@ tulip_chipid_t tulip_chipids[NDE];
#define TULIP_CRC32_POLY 0xEDB88320UL /* CRC-32 Poly -- Little Endian */
#define TULIP_CHECK_RXCRC 0
-#define TULIP_MAX_TXSEG 32
+#define TULIP_MAX_TXSEG 30
#define TULIP_ADDREQUAL(a1, a2) \
(((u_short *)a1)[0] == ((u_short *)a2)[0] \
- || ((u_short *)a1)[1] == ((u_short *)a2)[1] \
- || ((u_short *)a1)[2] == ((u_short *)a2)[2])
+ && ((u_short *)a1)[1] == ((u_short *)a2)[1] \
+ && ((u_short *)a1)[2] == ((u_short *)a2)[2])
#define TULIP_ADDRBRDCST(a1) \
(((u_short *)a1)[0] == 0xFFFFU \
- || ((u_short *)a1)[1] == 0xFFFFU \
- || ((u_short *)a1)[2] == 0xFFFFU)
+ && ((u_short *)a1)[1] == 0xFFFFU \
+ && ((u_short *)a1)[2] == 0xFFFFU)
static void tulip_start(struct ifnet *ifp);
static void tulip_addr_filter(tulip_softc_t *sc);
@@ -459,11 +457,14 @@ tulip_tx_intr(
* We've just finished processing a setup packet.
* Mark that we can finished it. If there's not
* another pending, startup the TULIP receiver.
+ * Make sure we ack the RXSTOPPED so we won't get
+ * an abormal interrupt indication.
*/
sc->tulip_flags &= ~TULIP_DOINGSETUP;
if ((sc->tulip_flags & TULIP_WANTSETUP) == 0) {
sc->tulip_cmdmode |= TULIP_CMD_RXRUN;
sc->tulip_intrmask |= TULIP_STS_RXSTOPPED;
+ *sc->tulip_csrs.csr_status = TULIP_STS_RXSTOPPED;
*sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
*sc->tulip_csrs.csr_intr = sc->tulip_intrmask;
}
@@ -516,7 +517,7 @@ tulip_txsegment(
}
}
if (segcnt >= maxseg) {
- printf("%s%d: tulip_txsegment: extremely fragmented packet dropped (%d segments)\n",
+ printf("%s%d: tulip_txsegment: extremely fragmented packet encountered (%d segments)\n",
sc->tulip_name, sc->tulip_unit, segcnt);
return -1;
}
@@ -583,7 +584,6 @@ tulip_start(
segcnt = tulip_txsegment(sc, m, addrvec,
min(ri->ri_max - 1, TULIP_MAX_TXSEG));
if (segcnt < 0) {
-#if 0
struct mbuf *m0;
MGETHDR(m0, M_DONTWAIT, MT_DATA);
if (m0 != NULL) {
@@ -594,18 +594,15 @@ tulip_start(
continue;
}
}
- m_copydata(m, 0, mtod(m0, caddr_t), m->m_pkthdr.len);
+ m_copydata(m, 0, m0->m_pkthdr.len, mtod(m0, caddr_t));
m0->m_pkthdr.len = m0->m_len = m->m_pkthdr.len;
m_freem(m);
IF_PREPEND(ifq, m0);
continue;
} else {
-#endif
m_freem(m);
continue;
-#if 0
}
-#endif
}
if (ri->ri_free - 2 <= (segcnt + 1) >> 1)
break;
@@ -635,18 +632,18 @@ tulip_start(
if (++ri->ri_nextout == ri->ri_last)
ri->ri_nextout = ri->ri_first;
} while ((segcnt -= 2) > 0);
-
+#if NBPFILTER > 0
+ if (sc->tulip_bpf != NULL)
+ bpf_mtap(sc->tulip_bpf, m);
+#endif
/*
* The descriptors have been filled in. Mark the first
* and last segments, indicate we want a transmit complete
* interrupt, give the descriptors to the TULIP, and tell
* it to transmit!
*/
+
IF_ENQUEUE(&sc->tulip_txq, m);
-#if NBPFILTER > 0
- if (sc->tulip_bpf)
- bpf_mtap(sc->tulip_bpf, m);
-#endif
eop->d_flag |= TULIP_DFLAG_TxLASTSEG|TULIP_DFLAG_TxWANTINTR;
sop->d_flag |= TULIP_DFLAG_TxFIRSTSEG;
sop->d_status = TULIP_DSTS_OWNER;
@@ -675,17 +672,17 @@ tulip_intr(
return 1;
}
}
+ if (csr & TULIP_STS_ABNRMLINTR) {
+ printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
+ sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
+ *sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
+ }
if (csr & TULIP_STS_RXINTR)
tulip_rx_intr(sc);
if (sc->tulip_txinfo.ri_free < sc->tulip_txinfo.ri_max) {
tulip_tx_intr(sc);
tulip_start(&sc->tulip_if);
}
- if (csr & TULIP_STS_ABNRMLINTR) {
- printf("%s%d: abnormal interrupt: 0x%05x [0x%05x]\n",
- sc->tulip_name, sc->tulip_unit, csr, csr & sc->tulip_intrmask);
- *sc->tulip_csrs.csr_command = sc->tulip_cmdmode;
- }
}
return 1;
}
@@ -710,8 +707,29 @@ tulip_read_macaddr(
sc->tulip_rombuf[idx] = csr & 0xFF;
}
- if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0)
- return -4;
+ if (bcmp(&sc->tulip_rombuf[0], &sc->tulip_rombuf[16], 8) != 0) {
+ /*
+ * Some folks don't use the standard ethernet rom format
+ * but instead just put the address in the first 6 bytes
+ * of the rom and let the rest be all 0xffs. (Can we say
+ * ZNYX???)
+ */
+ for (idx = 6; idx < 32; idx++) {
+ if (sc->tulip_rombuf[idx] != 0xFF)
+ return -4;
+ }
+ /*
+ * Make sure the address is not multicast or locally assigned
+ * that the OUI is not 00-00-00.
+ */
+ if ((sc->tulip_rombuf[0] & 3) != 0)
+ return -4;
+ if (sc->tulip_rombuf[0] == 0 && sc->tulip_rombuf[1] == 0
+ && sc->tulip_rombuf[2] == 0)
+ return -4;
+ bcopy(sc->tulip_rombuf, sc->tulip_hwaddr, 6);
+ return 0;
+ }
if (bcmp(&sc->tulip_rombuf[24], testpat, 8) != 0)
return -3;
@@ -846,6 +864,7 @@ tulip_ioctl(
#ifdef INET
case AF_INET: {
((struct arpcom *)ifp)->ac_ipaddr = IA_SIN(ifa)->sin_addr;
+ tulip_addr_filter(sc); /* reset multicast filtering */
(*ifp->if_init)(ifp->if_unit);
arpwhohas((struct arpcom *)ifp, &IA_SIN(ifa)->sin_addr);
break;
@@ -939,7 +958,6 @@ tulip_attach(
tulip_softc_t *sc)
{
struct ifnet *ifp = &sc->tulip_if;
- struct ifaddr *ifa = ifp->if_addrlist;
int cnt;
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_NOTRAILERS | IFF_MULTICAST;
@@ -1052,11 +1070,11 @@ tulip_pci_probe(
if (tulips[idx] == NULL) {
if (device_id == 0x00021011ul) {
tulip_chipids[idx] = TULIP_DC21040;
- return "digital dc21040 ethernet";
+ return "Digital DC21040 Ethernet";
}
if (device_id == 0x00091011ul) {
tulip_chipids[idx] = TULIP_DC21140;
- return "digital dc21140 fast ethernet";
+ return "Digital DC21140 Fast Ethernet";
}
return NULL;
}
@@ -1125,7 +1143,7 @@ tulip_pci_attach(
for (idx = 0; idx < 32; idx++)
printf("%02x", sc->tulip_rombuf[idx]);
printf("\n");
- printf("%s%d: %s %d.%d ethernet address %s\n",
+ printf("%s%d: %s pass %d.%d ethernet address %s\n",
sc->tulip_name, sc->tulip_unit,
tulip_chipdescs[tulip_chipids[sc->tulip_unit]],
(sc->tulip_revinfo & 0xF0) >> 4, sc->tulip_revinfo & 0x0F,
diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c
index e1965bcf24e5..be750b148059 100644
--- a/sys/vm/vm_swap.c
+++ b/sys/vm/vm_swap.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)vm_swap.c 8.5 (Berkeley) 2/17/94
- * $Id: vm_swap.c,v 1.10 1994/10/22 02:41:19 davidg Exp $
+ * $Id: vm_swap.c,v 1.11 1994/10/22 17:53:35 phk Exp $
*/
#include <sys/param.h>
@@ -404,7 +404,7 @@ swfree(p, index)
return (0);
}
#endif
- for (dvbase = 0; dvbase < nblks; dvbase += dmmax) {
+ for (dvbase = dmmax; dvbase < nblks; dvbase += dmmax) {
blk = nblks - dvbase;
#ifdef SEQSWAP