Commit graph

13153 commits

Author SHA1 Message Date
Bill Paul 6985d23298 GRRRR! Apparently, the promiscuous mode chip bug which I thought was
isolated to revision 33 PNIC chips is also present in revision 32 chips.
Cards with rev. 32 chips include the LinkSys LNE100TX and the Matrox
FastNIC 10/100. This accounts for all the cards that I have to test
with.

(I was never able to personally trip the bug on this chip rev, but today
one of the guys in the lab did it with the software they're working on
for their cellular IP project, which uses BPF and promiscuous mode
extensively.)

This commit enables the promiscuous mode software workaround code for
both revison 32 and revision 33 chips. It's possible all of the PNIC
chips suffer from this bug, but these are the only two revs where I
know for a fact it exists.
1999-01-05 00:59:08 +00:00
Luigi Rizzo 73a5bda360 Fix YMF719 detection (report by jose@we.lc.ehu.es).
Fix compile problems without "controller pnp0"
(fix by German Tischler)
1999-01-04 20:06:38 +00:00
Peter Wemm e423230b0d Fix a potential sign extension bug on 8-bit chars.
Outputting a backspace isn't supposed to be destructive..  It isn't on
most terminals, nor on the standard bios output (vs. TERM_EMU mode)
1999-01-04 18:45:08 +00:00
Peter Wemm 4cd1140888 Fix variable initialization.. It was written with '==' instead of '-'.
#include <string.h> for string prototypes.
1999-01-04 18:39:24 +00:00
Peter Wemm f68d58133b Clean some unused variables lint 1999-01-04 18:38:23 +00:00
Peter Wemm 717b58274a Don't forget a trailing \n when loading a kernel that has been stripped.
(This might make ELF_VERBOSE look funny, but I'm tempted to delete that
 anyway)
1999-01-04 18:37:41 +00:00
Luigi Rizzo 2bd69c5d34 Bring in ad1816 patches from German Tischler.
Fix 'device not configured' problem that people were experiencing
when only PCI devices are present.
1999-01-04 10:40:14 +00:00
KATO Takenori 9faa78835a Sync with sys/i386/conf/options.i386 revision 1.101. 1999-01-04 08:09:15 +00:00
KATO Takenori f06eb99ea9 Sync with sys/i386/conf/majors.i386 revision 1.59. 1999-01-04 08:08:28 +00:00
KATO Takenori 47badd2e6f Sync with sys/i386/conf/files.i386 revision up to 1.217. 1999-01-04 08:07:47 +00:00
KATO Takenori d81f52e533 Sync with sys/i386/boot/rawboot/Makefile revision 1.12. 1999-01-04 08:05:55 +00:00
KATO Takenori 5235b94692 Sync with sys/i386/boot/netboot/Makefile revision 1.22. 1999-01-04 08:05:01 +00:00
KATO Takenori cc44dd6486 Sync with sys/i386/boot/kzipboot/Makefile revision 1.10. 1999-01-04 08:03:17 +00:00
KATO Takenori c1413f26a7 Sync with sys/i386/boot/biosboot/Makefile revision 1.68. 1999-01-04 08:02:13 +00:00
KATO Takenori 701c68e36b Sync with sys/i386/boot/Makefile.inc revision up to 1.5. 1999-01-04 08:01:04 +00:00
Mike Smith 170aadf69a Restore dependancy to build loader.help here 1999-01-04 01:28:46 +00:00
Mike Smith a2d84c6405 Add dependancy to build loader.help here 1999-01-04 01:28:39 +00:00
Matt Jacob 918d0cf6b7 Temporary workaround (bandaid) for case where you have READ
CAPACITY fail for a non-removable media device. There's a race
condition where the device entry is removed and then
xpt_release_ccb is called which attempts to give back the ccb
to a device that's now gone. In this bandaid release the ccb
early and then remember to not call xpt_release_ccb later.
1999-01-03 22:57:54 +00:00
Mike Smith 9aad9a4900 First cut at generating loader.help for the alpha 1999-01-03 20:54:05 +00:00
Mike Smith 5dfcac87f7 Reenable generation of the loader.help file 1999-01-03 20:50:35 +00:00
KATO Takenori 4b6b2a8495 Recognize IDE controler even if HDD is not connected.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-01-03 17:26:04 +00:00
Nick Hibma 0d3c3d3942 Corrected the major number for usb and added ums as major 111 1999-01-03 16:48:03 +00:00
KATO Takenori 8f1ca31497 - Remove bus-dependent addresses from `ic' file.
- Special registers of IO-DATA device's RSA series are defined in
  ic/rsa.h (new file).

Pointed out by:	Bruce Evans <bde@zeta.org.au>
Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-01-03 15:57:02 +00:00
Jordan K. Hubbard 4eb053a51e catch a /boot doc instance I missed. 1999-01-03 07:38:58 +00:00
Jordan K. Hubbard 372b7d7a2e Revert r1.4 - I was confused as to its real meaning.
Noted by:	bde
1999-01-03 07:38:15 +00:00
KATO Takenori 3171a83027 Support following devices:
- on board 2nd CCU
  - Midori Elec. MDC-926Rs
  - Midori-Hayes ESP98
  - NEC PC-9861K, PC-9801-101 PC-9801-120
  - Melco IND-SP and IND-SS
  - PIO-9032A/B/C
  - B98-01 and B98-02
  - IO-data device RSA-98II and RSA-98III
  - MC-16550
  - MC-RS98
  - Media Inteligent RSB-2000/3000 and RSB-384
  - PCMCIA modem card

Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-01-03 05:03:47 +00:00
Jordan K. Hubbard d26a815b77 Clean up some more residual /usr/mdec references. I left all the
extra rbootd/boot rom cruft pointing at /usr/mdec since it either
doesn't exist or doesn't work anyway, so who cares? :)
1999-01-03 02:18:58 +00:00
Bill Paul 57ff492d3e Minor bug: in the case where allocating a fresh mbuf for the receive ring
fails, we need to set the descriptor status word so that the 'OWN' bit
is set again so that the chip can reuse it. Previously, this wasn't being
done.
1999-01-03 02:05:21 +00:00
Jordan K. Hubbard 8963f9f139 Update for new boot block location. 1999-01-02 23:22:12 +00:00
Dmitrij Tejblum 57081f7b94 Now empty DOS filesystems default to long file names. Non-empty filesystems
without traces of Win95 default to short file names, as before.
1999-01-02 18:52:13 +00:00
Tim Vanderhoek 28cb15a9a9 Extraneous space. 1999-01-02 17:11:45 +00:00
Dmitrij Tejblum 9d9fdb45c5 Ensure that deHighClust in direntry always initialized.
Noticed by: 	Carl Mascott <cmascott@world.std.com>

Don't write access time of a file more than once per day. (Its precision is
1 day anyway). Don't try to write access and creation time in nonwin95 case.

Suggested by:	bde (long time ago).
1999-01-02 13:26:29 +00:00
Bruce Evans 289bdf33d3 Ifdefed conditionally used simplock variables. 1999-01-02 11:34:57 +00:00
Eivind Eklund a777e82019 Remove the last clients of vfs_object_create(..., waslocked=1);
waslocked will go away shortly.

Reviewed by:	dg
1999-01-02 01:32:36 +00:00
Luigi Rizzo 0a1dd951c8 unbreak devfs support after wrong cut&paste...
ReportedBy: Louis A. Mamakos
1999-01-01 14:53:31 +00:00
Bruce Evans 9fe425981b Fixed bitrot in a comment. Fixed some style bugs. 1999-01-01 14:41:51 +00:00
Dag-Erling Smørgrav 0a3e1d6535 Use M_VGA_VG320 if M_VESA_CG800x600 is not available. It looks ugly in
low-res, but it works...

Submitted by:	Ben Smithurst <ben@scientia.demon.co.uk>
1999-01-01 14:40:49 +00:00
Dag-Erling Smørgrav 70bfbd280e Correct typo in macro name. 1999-01-01 14:38:30 +00:00
Bruce Evans 101a573e33 Don't use __BEGIN_DECLS/__END_DECLS in the kernel.
Fixed some other, even more minor style bugs.
1999-01-01 14:30:11 +00:00
Bruce Evans 93ac7ca8cf Minor English and spelling fixes. 1999-01-01 14:21:13 +00:00
Bruce Evans b55dcca107 The previous commit was bogus. malloc(..., M_WAITOK) should not be
used in device attach routines.  At least for attaches at boot time,
actually waiting, or actually failing for malloc(..., M_NOWAIT), are
almost equally unlikely and harmless, but using M_WAITOK interferes
with automatic detection of bogus M_WAITOK's.
1999-01-01 12:35:47 +00:00
Bruce Evans 9dd98e24ca Fixed bitrot in comments. 1999-01-01 10:33:52 +00:00
Bruce Evans f2aed91b48 Made this compile if UMAPFS_DIAGNOSTIC is defined. This has been broken
since before rev.1.1, so UMAPFS_DIAGNOSTIC should not be trusted.
UMAPFS_DIAGNOSTIC is commented out in LINT to hide various bugs.
1999-01-01 10:14:37 +00:00
Peter Wemm b3c0a3cc54 Part 3 of the pcvt/voxware revival.
Reviewed by:	core
1999-01-01 08:23:23 +00:00
Peter Wemm a0f70ac053 Part 2 of pcvt/voxware revival. I hope I have not clobbered any other
deltas, but it is possible since I had a few merge conflicts over the last
few days while this has been sitting ready to go.

(Part 1 was committed to the config files, but cvs aborted grrr..)

Approved by:    core
1999-01-01 08:18:13 +00:00
Peter Wemm c19da41ebb Part 1 of pcvt/voxware revival. I hope I have not clobbered any other
deltas, but it is possible since I had a few merge conflicts over the last
few days while this has been sitting ready to go.

Approved by:	core
1999-01-01 08:09:58 +00:00
Peter Wemm 3ea799d5aa Oops, forgot to commit entry in LINT for statically configured vinum. 1999-01-01 04:16:32 +00:00
Matthew Dillon 2ae122f64a The mount_mfs process that stays in a supervisor context handling MFS
I/O requests must be marked P_SYSTEM because if it isn't and the system
    decides to swap it or (god forbid) kill it, the system stands a good
    chance of locking up.
1999-01-01 04:14:11 +00:00
Bill Paul d1b5b058f7 This commit adds a software workaround for a hardware bug in certain PNIC
chip revisions. (A buggy taiwanese chip? I'm just shocked; shocked I tell
you.) So far I have only observed the anomalous behavior on board with
PCI revision 33 chips. At the moment, this seems to include only the
Netgear FA310-TX rev D1 boards with chips labeled NGMC169B. (Possibly this
means it's an 82c169B part from Lite-On.)

The bug only manifests itself in promiscuous mode, and usually only at
10Mbps half-duplex. (I have not observed the problem in full-duplex mode,
and I don't think it ever happens at 100Mbps.) The bug appears to be in
the receiver DMA engine. Normally, the chip is programmed with a linked
list of receiver descriptors, each with a receive buffer capable of holding
a complete full-sized ethernet frame. During periods of heavy traffic
(i.e. ping -c 100 -f 8100 <otherhost>), the receiver will sometimes appear
to upload its entire FIFO memory contents instead of just uploading the
desired received frame. The uploaded data will span several receive
buffers, in spite of the fact that the chip has been told to only use
one descriptor per frame, and appears to consist of previously transmitted
frames with the correct received frame appended to the end.

Unfortunately, there is no way to determine exactly how much data is
uploaded when this happens; the chip doesn't tell you anything except the
size of the desired received frame, and the amount of bogus data varies.
Sometimes, the desired frame is also split across multiple buffers.

The workaround is ugly and nasty. The driver assembles all of the data
from the bogus frames into a single buffer. The receive buffers are always
zeroed out, and we program the chip to always include the receive CRC
at the end of each frame. We therefore know that we can start from the
end of the buffer and scan back until we encounter a non-zero data byte,
and say conclusively that this is the end of the desired frame. We can
then subtract the frame length from this address to determine the real
start of the frame, and copy it into an mbuf and pass it on.

This is kludgy and time consuming, but it's better than dropping frames.
It's not too bad since the problem only happens at 10Mbps.

The workaround is only enabled for chips with PCI revision == 33. The
LinkSys LNE100TX and Matrox FastNIC 10/100 cards use a revision 32 chip
and work fine in promiscuous mode. Netgear support has confirmed that
they "have some previous knowledge of problems in promiscuous mode" but
didn't have a workaround. The people at Lite-On who would be able to
suggest a possible fix are on vacation. So, I decided to implement a
workaround of my own until I hear from them. I suppose this problem made
it through Netgear's QA department since Windows doesn't normally use
promiscuous mode, and if Windows doesn't need the feature than it can't
possibly be important, right? Grrr.
1998-12-31 17:19:21 +00:00
Wolfram Schneider 8aa783b08f Happy 1999! 1998-12-31 14:26:42 +00:00