Commit graph

1132 commits

Author SHA1 Message Date
Bill Paul b95a9362a0 Fix the strings in the driver_t structs so that they match the new names
in the DRIVER_MODULES() declarations. *sigh*
1999-09-20 08:14:39 +00:00
David E. O'Brien abad681b03 Goofed and didn't change the second DRIVER_MODULE() linking these with
the miibus.

Noticed by:	wpaul
1999-09-20 07:50:10 +00:00
David E. O'Brien bd8a15ce8a Change the name we register with DRIVER_MODULE() to include the leading
"if_".

Reviewed by:	msmith, wpaul
1999-09-20 06:50:52 +00:00
Peter Wemm 814e16091b Make if_ed work again on pci, isa, isapnp. The hack to make it work on
PCCARD is pretty revolting but should buy us time while the pccard driver
angle is sorted out.  A commit for the MCA ed attachment will follow
shortly.
1999-09-20 05:48:16 +00:00
Bill Paul 1b4226d3e4 Add an alternate transmit strategy for 3c90xB adapters based on the transmit
strategy used in the 3Com Linux driver. The new strategy is to use transmit
descriptor polling -- that is, the NIC polls the descriptors to see when
new packets are available for transmission. The advantage to the new scheme
is that no register accesses are needed in the transmit routine. The old
scheme requires several register accesses to stall the TX engine, update the
TX DMA list pointer register, then unstall the TX engine. Hopefully the new
scheme will provide improved transmit performance with less CPU overhead.

This only affects the 3c90xB or 3c90xC cards, not the 3c90x cards. This
means the original 3c900 and 3c905 cards are unaffected. Newer cards include
the 3c900B series, the 3c905B, 3c980, 3c980B, 3c905C and 3c905C, and the
3cSOHO100-TX OfficeConnect.
1999-09-20 00:24:11 +00:00
Bill Paul ca2190f252 Make some small performance tweaks to the tl driver. This should hopefully
close PR #13757, however I'm waiting on user feedback before declaring the
PR officially closed. Among other things, this improves UDP transmit
performance, and tx underruns are now detected and the TX start threshold
adjusted accordingly.
1999-09-19 22:39:24 +00:00
Bill Paul ae3b8c19b1 Convert the VIA Rhine driver to miibus. 1999-09-19 22:03:31 +00:00
Bill Paul 6fe64cb683 Clean up two cases of the alpha vtophys() hack that should be
using alpha_XXX_dmamap() but aren't.
1999-09-18 04:04:03 +00:00
Bill Paul 2c0431ecf6 Fix the mechanism used to choose the unit numbers for the IP interfaces
attached by the SysKonnect driver. Use ifunit() to scan for existing
skN interfaces and pick the first unused one.
1999-09-18 04:01:31 +00:00
Roger Hardiman f53c00ee1a Update to driver release 1.74
Bug fix:     xmradio nolonger experiences a 6Mhz offset after running FXTV

New feature: Automatic Tuner selection for AVerMedia cards with
             configuration EEPROMs on (ie the Bt878 based cards)
1999-09-17 21:28:23 +00:00
Bill Paul 28b50861e7 Patch if_vr to add bridging support.
PR:		12385
Submitted by:	lyndon@orthanc.ab.ca
1999-09-17 18:25:30 +00:00
Bill Paul d1e8f983ef Remember to account for ETHER_ALIGN when setting the maxmimum packet
length for mini receive ring. The max length was MHLEN, however the mbufs
are actually shortened to MHLEN - ETHER_ALIGN to force payload alignment.

PR:		13793
1999-09-17 18:04:14 +00:00
Roger Hardiman 1ea586719f Sync with driver release 1.74 1999-09-17 17:06:36 +00:00
Bill Paul 1ed9e51a4d Fix sf_probe() to detect the card type properly. I botched the reading
of the subsystem ID when I converted to newbus. The driver still detects
the chipset and still works but fails to identify the exact card.
1999-09-17 00:47:41 +00:00
Bill Paul 58454ee28c Dangit: mispelled TORNADO in one place. 1999-09-15 07:20:59 +00:00
Bill Paul 81569a614d 3Com has produced their own Linux driver for the 3c90x/3c90xB series cards.
It's GPL'ed of course, but looking over it tonight I learned of Yet Another
Fast EtherLink XL Adapter: the 3c980C server adapter. This is basically
an updated version of the 3c980 that uses the Tornado ASIC instead of the
earlier Hurricane ASIC. The only change here is to add the new PCI device
ID (0x9805) and corresponding table entries.
1999-09-15 07:19:34 +00:00
Kenneth D. Merry 20d39afec3 Get rid of a stray printf on boot. (BRDCTL = ...)
Approved by:	gibbs
1999-09-13 16:32:34 +00:00
Roger Hardiman 76e2530cfb Update to driver 1.73
Add new hauppauge Tuner Type 6
Add Aims Labs Video Highway Xtreme card type
1999-09-10 12:08:36 +00:00
Peter Wemm 518dee7dbb Add a pointer to "controller miibus0" for people who will not read the
commit messages or GENERIC and insist on running -CURRENT.
It probably won't work, but it's worth a try.
1999-09-08 15:01:58 +00:00
Bill Paul aa8fac6c4d Fix comment: RX underrun -> RX overrun. 1999-09-07 17:06:17 +00:00
Bill Paul 3b0ecb8e18 Fix an instance of FOO_RX_LIST_CNT that should have been FOO_TX_LIST_CNT. 1999-09-06 23:29:50 +00:00
Bill Paul f5dbc00887 Remember to re-arm the timeout for the tick routine. 1999-09-06 19:42:02 +00:00
Bill Paul 4693f9cbd5 Fix definitions for RID and RES if we're not using IOSPACE. I copied the
two lines and forgot to change them for the !IOSPACE case. Not a big deal
since PCI memory mapped mode is off by default, but I still feel silly.
1999-09-06 18:42:27 +00:00
Bill Paul fdd05ee7ff Whups, forgot one $Id$ -> $FreeBSD$ conversion. 1999-09-06 06:19:29 +00:00
Peter Wemm dd68ef1623 Recognise the new 82559 chip id as used on the InBusiness 10/100 adapter.
I have an 82559 card with the same id as the other 8255[78] chips, but
that was made with a date code of 0699 (June 99).  The submitter shows
this working with the probe etc, but doesn't actually say it works as
on the ethernet. :-) Assuming it does, this is a RELENG_3 merge candidate.
Submitted by:	Steven E Lumos <slumos@sam.ISRI.UNLV.EDU>
1999-09-06 06:15:18 +00:00
Bill Paul e5a9fd5435 This commit adds driver support for PCI fast ethernet NICs based on
the Davicom DM9100 and DM9102 chipsets, including the Jaton Corporation
XPressNet. Datasheet is available from www.davicom8.com.

The DM910x chips are still more tulip clones. The API is reproduced
pretty faithfully, unfortunately the performance is pretty bad. The
transmitter seems to have a lot of problems DMAing multi-fragment
packets. The only way to make it work reliably is to coalesce transmitted
packets into a single contiguous buffer. The Linux driver (written by
Davicom) actually does something similar to this. I can't recomment this
NIC as anything more than a "connectivity solution."

This driver uses newbus and miibus and is supported on both i386
and alpha platforms.
1999-09-06 06:14:30 +00:00
Bill Paul 9555e59a1e This commit adds driver support for the Silicon Integrated Systems
SiS 900 and SiS 7016 PCI fast ethernet chipsets. Full manuals for the
SiS chips can be found at www.sis.com.tw.

This is a fairly simple chipset. The receiver uses a 128-bit multicast
hash table and single perfect entry for the station address. Transmit and
receive DMA and FIFO thresholds are easily tuneable. Documentation is
pretty decent and performance is not bad, even on my crufty 486. This
driver uses newbus and miibus and is supported on both the i386 and
alpha architectures.
1999-09-05 21:01:03 +00:00
Bill Paul ba2cb70286 #ifdef out the definition for the small packet RX ring. I ended up only
using one RX ring because of the alignment issue, so we may as well save
a few K of memory by not allocating space for it.
1999-09-03 20:58:39 +00:00
Peter Wemm 599d7638dd Commit a checkpoint of an updated if_ed driver. This is pretty much
Doug Rabson's work, with a few tweaks from Warner Losh and I.  There are
still some quirks to resolve, but the old driver is presently breaking
the build.
1999-09-03 19:10:56 +00:00
Luoqi Chen cb899cd41d Handle for passthru resource release correctly. 1999-09-03 04:30:01 +00:00
Roger Hardiman 216c19e338 Update to driver 1.72.
Fix a bug where video capture locks up on channel changes.
Many thanks to Juha for solving this.

Submitted by: Juha Nurmela <Juha.Nurmela@quicknet.inet.fi>
1999-09-01 14:09:53 +00:00
Bill Paul 499d0ac7aa Just when I thought it was safe. In the original 3c905-TX NICs, the
external NatSemi PHY chip was programmed to respond to MII address 24.
In the 3c905B ASICs, the transceiver is internal but it's still mapped
to MII address 24. But *some* 3Com 3c905B ASIC revisions map the
transceiver control registers to *all* MII addresses (0 through 31).
The miibus code probes for PHYs at all MII addresses and because of
this unusual behavior, it will attempt to map the same PHY registers
several times over, which doesn't work.

Naturally, the 3c905B NIC that I tested happened not to exhibit this
behavior.

The fix is to tweak xl_miibus_readreg() and xl_miibus_writereg()
to only respond when attempting to read from MII address 24. This
is safe to do since the 3Com documentation indicates that the PHY
and/or internal transceiver will always be mapped to address 24,
and there are no 3Com XL NICs with more than one PHY.
1999-09-01 03:16:21 +00:00
Bill Paul 59519ca74f Convert the RealTek 8139 driver to newbus and miibus in one swell foop.
Also set it up to be compiled as a module.
1999-08-31 14:45:51 +00:00
Roger Hardiman 2dd2ab9fc8 Oops. I undid the $Id: -> $FreBSD: change.
Put it back to $FreeBSD:
1999-08-31 10:32:42 +00:00
Roger Hardiman 2271cf26df Update to driver release 1.71
New Features:
Greatly improved VBI capture support. (mainly for the AleVT port)
Supports select() on /dev/vbi
Improved RISC program for RGB+VBI capture to capture both evenodd
VBI data even when only capturing even only (or odd only) video
Based on code from Juha Nurmela <Juha.Nurmela@quicknet.inet.fi>

Support for Hauppauge 627 and Temic 4006
Submitted by: Maurice Castro <maurice@atum.castro.aus.net>

Bug Fix:
Fix bug in AverMedia card detection.
1999-08-31 10:29:42 +00:00
Bill Paul a8ba3c35cb Add splimp protection to wb_tick(). 1999-08-31 05:30:13 +00:00
Bill Paul ca11eaac63 Make sure to free resources on failure correctly in a couple of places
in ste_attach().
1999-08-31 05:20:59 +00:00
Peter Wemm ead4c37a5d Fix a couple of things that weren't quite right for not using
PN_RX_BUG_WAR - it was freeing memory that may not have been allocated,
and unconditionally bzero'ing the mbufs even if the workaround wasn't
enabled.
1999-08-31 04:22:46 +00:00
Bill Paul 4ae17070a2 Convert the Adaptec and Winbond drivers to miibus. 1999-08-30 23:08:32 +00:00
Justin T. Gibbs 5bdd92770e Add support for the aic7859 which is found on the 2930CU.
Break out the detection logic for the aic7855 and properly report
these chips as 7855s instead of 7850s.

The 2940AU_CN is an aic7860 based card, not aic7860.

Not setting CACHETHEN turned out to be a bad idea.  It can cause
spurious corruption under heavy PCI load with multiple masters.
1999-08-30 16:11:46 +00:00
Nick Sayer df6cb0046a MFS: Change path to perl. 1999-08-30 14:41:09 +00:00
Roger Hardiman a8a77e3724 Add #include <sys/select.h> ready for select() support in bt848 driver 1999-08-30 09:28:47 +00:00
Bill Paul 1ef8fbeabf Convert the 3Com XL driver to miibus. This one is a little tricky
due to the fact that there are non-MII cards supported by the same
driver and I don't have all of the cards available for testing. There's
also the 3c905B-COMBO which has MII, AUI and BNC media ports all in one
package. Supporting the COMBO is difficult because we have to add the
10base5 and 10base2 media types to the same ifmedia struct as the
MII-attached types, however there is no way to force the miibus and
child PHYs into existence before xl_attach() completes, so there is
no ifmedia struct available in xl_attach(). What we do inistead is
use the mediainit method as a callback: when a child PHY is attached,
it calls the miibus mediainit routine which selects a default media.
This routing also calls the NIC driver's mediainit method (if it
implements one) at which point we can safely add the other media
types.
1999-08-29 15:52:19 +00:00
Roger Hardiman a165a91d78 Add Voodoo 3 identification.
pciconf on my Vodoo3 2000 also shows sub-system vendor id/model with
card=0x0030121a
1999-08-29 15:11:22 +00:00
Bruce Evans 3de9d6fbe4 Don't restrict our requests for contiguous memory to addresses >= 1MB.
This fixes, at least, panics in ncr_attach() on i386's with about 5MB
of memory.  The restriction was a hack to leave some low memory for ISA
DMA, but on i386's we now allocate pages from the top down, so all the
restriction did was cause our allocations to fail when there is no free
memory above 1MB.
1999-08-29 09:03:58 +00:00
Peter Wemm c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Bill Paul 05d6200e3f Make some cleanups related to miibus. 1999-08-27 21:18:02 +00:00
Bill Paul 46c8f7f1c2 Convert the ThunderLAN driver to miibus. This took me a while because I
had to get the ML 6692 PHY driver working correctly, which is harder than
it sounds. "Bitrate" ThunderLAN devices should still be supported (i.e
the older 10Mbps Netflex 3/P, which use the TNETE110 chip that has no
MII support). The ThunderLAN has an internal PHY which makes things a
little complicated, but these are the basic rules:

- For devices with just the ThunderLAN, the internal PHY is used to
  provide 10baseT, and 10base5/10baseT support. Autonegotiation will
  work, but only with 10baseT links. The only thing that really gets
  negotiated is whether the link is full or half duplex.

- For devices with the ThunderLAN and an external 10/100 PHY (like the
  Compaq Netelligent 100Mbps cards, or the internal Netflex 3/P with
  100Mbps upgrade daughter card), the external PHY is used for 10baseT
  and 100baseTX modes. The internal PHY is still used to support
  10base5/10base2, though you have to select them manual with ifconfig.

- For devices with the ThunderLAN and the ML6692 PHY, both the internal
  and external PHYs are used, though it will appear as though the 6692
  PHY will be used to support 10baseT and 100baseTX modes. In reality,
  the internal PHY will be used for 10baseT, but this fact will be hidden
  from the user. The 10base5/10base2 modes can also be selected manually
  as with above.
1999-08-27 18:58:27 +00:00
Bill Paul cbc20d30a5 Properly re-enable the transmitter in the TX error handler. 1999-08-26 05:31:53 +00:00
Bill Paul 0f41c63996 Change PN_RXLEN from 1518 bytes to 1536 bytes. The chip always DMAs data
in 4 byte chunks. It turns out that with the 82c169C on the Netgear
FA-310TX Rev D2, if you tell the chip you have reserved a buffer of 1518
bytes, it will actually treat it as 1516 bytes since 1518 is divisible
by four. Consequently, a packet of 1514 bytes will always end up consuming
two buffers: the last coupleof bytes will spill over into the next
descriptor. This causes the pn_rx_bug_war() routine to trip unnecessarily.

I'm not sure if the 82c169B or 82c168 chips behave the same way; I'll
have to check them. In any case, this change should work just as well
with them. Note that the FA-310TX Rev D2 also has a Broadcom PHY
instead of a Level One LXT970 PHY, however this shouldn't make any
difference as far as the driver is concerned.

This change also allows me to do a way with one rounding overation in
pn_rx-buf_war().
1999-08-24 03:19:45 +00:00