Commit Graph

76 Commits

Author SHA1 Message Date
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
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Bill Paul
23e4757cd7 This commit adds device driver support for the Sundance Technologies ST201
PCI fast ethernet controller. Currently, the only card I know that uses
this chip is the D-Link DFE-550TX. (Don't ask me where to buy these: the
only cards I have are samples sent to me by D-Link.)

This driver is the first to make use of the miibus code once I'm sure
it all works together nicely, I'll start converting the other drivers.

The Sundance chip is a clone of the 3Com 3c90x Etherlink XL design
only with its own register layout. Support is provided for ifmedia,
hardware multicast filtering, bridging and promiscuous mode.
1999-08-21 18:34:58 +00:00
Bill Paul
d00275330d This commit adds support for the NetBSD MII abstraction layer and
MII-compliant PHY drivers. Many 10/100 ethernet NICs available today
either use an MII transceiver or have built-in transceivers that can
be programmed using an MII interface. It makes sense then to separate
this support out into common code instead of duplicating it in all
of the NIC drivers. The mii code also handles all of the media
detection, selection and reporting via the ifmedia interface.

This is basically the same code from NetBSD's /sys/dev/mii, except
it's been adapted to FreeBSD's bus architecture. The advantage to this
is that it automatically allows everything to be turned into a
loadable module. There are some common functions for use in drivers
once an miibus has been attached (mii_mediachg(), mii_pollstat(),
mii_tick()) as well as individual PHY drivers. There is also a
generic driver for all PHYs that aren't handled by a specific driver.
It's possible to do this because all 10/100 PHYs implement the same
general register set in addition to their vendor-specific register
sets, so for the most part you can use one driver for pretty much
any PHY. There are a couple of oddball exceptions though, hence
the need to have specific drivers.

There are two layers: the generic "miibus" layer and the PHY driver
layer. The drivers are child devices of "miibus" and the "miibus" is
a child of a given NIC driver. The "miibus" code and the PHY drivers
can actually be compiled and kldoaded as completely separate modules
or compiled together into one module. For the moment I'm using the
latter approach since the code is relatively small.

Currently there are only three PHY drivers here: the generic driver,
the built-in 3Com XL driver and the NS DP83840 driver. I'll be adding
others later as I convert various NIC drivers to use this code.

I realize that I'm cvs adding this stuff instead of importing it
onto a separate vendor branch, but in my opinion the import approach
doesn't really offer any significant advantage: I'm going to be
maintaining this stuff and writing my own PHY drivers one way or
the other.
1999-08-21 17:40:53 +00:00
Bill Paul
8674aa45c7 Convert the Winbond driver to newbus and have it compiled as a module. 1999-08-10 21:09:12 +00:00
Bill Paul
08339b4fa4 Convert the VIA Rhine driver to newbus and set it up to be compiled as
a module. Also modified the code to work on FreeBSD/alpha and added
device vr0 to the alpha GENERIC config.

While I was in the neighborhood, I noticed that I was still using
#define NFPX 1 in all of the Makefiles that I'd copied from the fxp
module. I don't really use #define Nfoo X so it didn't matter, but
I decided to customize this correctly anyway.
1999-08-10 17:15:20 +00:00
Bill Paul
74432d0d13 Add a module Makefile for the PNIC driver. 1999-07-28 02:21:56 +00:00
Bill Paul
691c152864 This commit adds device driver support for Adaptec Duralink PCI fast
ethernet controllers based on the AIC-6915 "Starfire" controller chip.
There are single port, dual port and quad port cards, plus one 100baseFX
card. All are 64-bit PCI devices, except one single port model.

The Starfire would be a very nice chip were it not for the fact that
receive buffers have to be longword aligned. This requires buffer
copying in order to achieve proper payload alignment on the alpha.
Payload alignment is enforced on both the alpha and x86 platforms.
The Starfire has several different DMA descriptor formats and transfer
mechanisms. This driver uses frame descriptors for transmission which
can address up to 14 packet fragments, and a single fragment descriptor
for receive. It also uses the producer/consumer model and completion
queues for both transmit and receive. The transmit ring has 128
descriptors and the receive ring has 256.

This driver supports both FreeBSD/i386 and FreeBSD/alpha, and uses newbus
so that it can be compiled as a loadable kernel module. Support for BPF
and hardware multicast filtering is included.
1999-07-25 04:32:50 +00:00
Bill Paul
8b1b6ae5a6 Add mx and ax modules for the Macronix and ASIX drivers and update the
modules Makefile so they get built.
1999-07-24 20:55:05 +00:00
Bill Paul
98edb3e178 Create module directories for the xl, ti, tl and sk drivers and add
them to the Makefile so that modules will be generated for /modules.
1999-07-23 05:48:01 +00:00
Greg Lehey
9e0450400d Reenable Vinum build 1999-06-24 05:21:19 +00:00
Roger Hardiman
05da1d9122 Add bktr (Bt848/Bt878 driver loadable module) to the Makefile i386 only section 1999-06-12 15:11:33 +00:00
John Birrell
c27d843bd9 Remove vinum from the build until Greg reviews phk's cdevsw changes.
Preferred by: phk (rather than committing the patch without review).
1999-06-02 07:15:17 +00:00
Greg Lehey
2ca1fa6cd1 Reenable vinum build. 1999-05-15 06:13:27 +00:00
Poul-Henning Kamp
2c7723a7c9 Vinum doesn't compile right now. 1999-05-13 09:43:29 +00:00
Bruce Evans
54ab20b159 Fixed bitrot in comments. 1999-05-06 03:35:44 +00:00
David E. O'Brien
025998c77d MFS: don't build the pcic.ko module. 1999-05-05 20:58:15 +00:00
Peter Wemm
bd43a21c14 Kill joy for the time being, it used lkm unconditionally, breaking world.
Submitted by:	"Steven G. Kargl" <kargl@troutmask.apl.washington.edu>
1999-04-19 20:36:06 +00:00
Bruce Evans
dc10771330 Actually build the new fxp module.
Updated comments about rotten modules.

Fixed disorder and English errors.
1999-04-18 03:18:33 +00:00
Peter Wemm
6a6aebc809 Disconnect lkm subdir so we don't build a lkm module, in case something
I do breaks world or the nightly snapshots.  (you can still do it by hand
though for the moment)
1999-04-17 16:31:13 +00:00
Peter Wemm
4962041b9b Drop the atapi module from the build, it's just wasting time. 1999-04-13 18:53:54 +00:00
Julian Elischer
accde249ae quick BDE premption 1999-03-14 20:43:09 +00:00
Julian Elischer
0237469f43 A bit of a hack, but allows the vn device to be a module again.
Submitted by: Matt Dillon <dillon@freebsd.org>
1999-03-14 20:40:15 +00:00
Julian Elischer
a5296b05b4 Submitted by: Matt Dillon <dillon@freebsd.org>
The old VN device broke in -4.x when the definition of B_PAGING
changed. This patch fixes this plus implements additional capabilities.
The new VN device can be backed by a file ( as per normal ), or it can
be directly backed by swap.

Due to dependencies in VM include files  (on opt_xxx options) the new
vn device cannot be a module yet. This will be fixed in a later commit.
This commit delimitted by tags {PRE,POST}_MATT_VNDEV
1999-03-14 09:20:01 +00:00
Mark Newton
86e9118bcc Converted "streams" pseudo-device into a KLD 1999-02-22 11:44:46 +00:00
Semen Ustimenko
b4b8aedf57 Added ntfs subdirectory.
Reviewed by:	David O'Brien <obrien@NUXI.com>
1999-02-03 04:18:25 +00:00
Mark Newton
7f84fa455a Activate svr4 module 1999-01-30 06:31:51 +00:00
Peter Wemm
7ed6908ffd Add vn module to build list. 1999-01-21 17:19:56 +00:00
Peter Wemm
afce57191c Update for pcic for kld modules and activate 1999-01-19 00:41:17 +00:00
Peter Wemm
72a3f9e4d1 Add the lkm module 1999-01-17 19:06:06 +00:00
Kazutaka YOKOTA
1243dad08d Add splash screen module. This version has rather limited
capabilities, but should be a good start... Well, sort of.

It can handle W*ndows 256 color BMP file.  (Other color depth probably
won't work.) The size of the image must be 320x200 or less.  *sigh*
1999-01-11 03:34:56 +00:00
Bruce Evans
9dd98e24ca Fixed bitrot in comments. 1999-01-01 10:33:52 +00:00
Kazutaka YOKOTA
13e05026dd Make the VESA KLD module work! 1998-12-30 11:21:08 +00:00
Peter Wemm
8b26ae02c5 Reconnect vinum KLD module and have it build from sys/dev/vinum rather than
from outside the src/sys tree like before.
1998-12-28 05:27:24 +00:00
Søren Schmidt
380366f204 Temporaryly disable vinum, awaiting repository copy of misplaced files. 1998-12-27 19:43:28 +00:00
Søren Schmidt
b31f6ba123 Remove depricated wcd module. 1998-12-27 19:01:47 +00:00
John Polstra
68d0b83d98 Fix make world breakage: "$MACHINE_ARCH" -> "${MACHINE_ARCH}". 1998-11-04 18:25:23 +00:00
Mike Smith
28cc91d8c5 Don't try to build i386-centric modules on non-i386 systems. 1998-11-04 17:15:07 +00:00
Peter Wemm
cabb29ecf0 Reactivate coda. Also, KLD isn't just for i386, it will work on all
architectures since it is a key part of the configuration mechanism. The
exact same code runs in the kernel as it does in a kld module.
1998-11-03 08:58:27 +00:00
Peter Wemm
3b49cbc625 The union kld module is now fully functional. 1998-11-03 08:03:04 +00:00
Peter Wemm
d679319f61 Update comments on status of modules 1998-11-03 06:51:48 +00:00
Peter Wemm
a654d07295 Sample initial set of kld-ified modules. Not all have been completely
converted yet.  These are more of a starting point.  This is NOT connected
to the parent Makefile.

OK'ed by jkh (who is ever so patiently waiting)
1998-10-16 04:30:52 +00:00
Greg Lehey
3d8357b49c Include vinum in SUBDIR 1998-09-28 05:38:52 +00:00
Robert V. Baron
34b01b8c34 lkm for coda 1998-09-25 17:51:44 +00:00
Søren Schmidt
e0b1054764 Add the vesa module to the list 1998-09-15 20:17:35 +00:00
John Birrell
6e19590c40 The FreeBSD lkm design is aout specific. 1998-05-15 11:57:05 +00:00
Mike Smith
34ec3b3cc9 Don't reference (nonesxistent) qcam module. 1998-02-18 14:30:07 +00:00
Jonathan Lemon
ad47cbca85 Remove the vm86 LKM. 1997-08-28 14:45:26 +00:00
John Dyson
9b9d503b21 Add VM86 to the lkm build. 1997-08-09 00:23:07 +00:00