freebsd-nq/sys/modules
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
..
atapi Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
ax Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
bktr Change perl5 to perl (same change as made in the fxp module) 1999-06-12 15:08:50 +00:00
ccd Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
cd9660 Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
coda Clean up the KLD/LKM goop a bit. 1999-01-17 20:25:22 +00:00
coff Make this work now; fixing the kstack overflow allows the dependency to 1998-11-06 16:02:14 +00:00
fdesc Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
fdescfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
fpu Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
fxp Rename bpfilter to bpf. 1999-07-06 19:23:32 +00:00
gnufpu Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
ibcs2 Reference kld(4). 1999-04-23 16:12:44 +00:00
if_disc Rename bpfilter to bpf. 1999-07-06 19:23:32 +00:00
if_ppp Rename bpfilter to bpf. 1999-07-06 19:23:32 +00:00
if_sl Rename bpfilter to bpf. 1999-07-06 19:23:32 +00:00
if_tun Rename bpfilter to bpf. 1999-07-06 19:23:32 +00:00
ip_mroute_mod Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
ipfw No need to use a magic IPFIREWALL_MODULE - the build system supplies 1999-04-20 14:31:23 +00:00
joy Reference kld(4). 1999-04-23 16:12:44 +00:00
kernfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
linux Sort xrefs. 1999-08-19 00:10:37 +00:00
mfs Don't forget to remove opt_mfs.h. 1998-11-11 03:06:46 +00:00
mii This commit adds support for the NetBSD MII abstraction layer and 1999-08-21 17:40:53 +00:00
msdos Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
msdosfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
mx Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
nfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
nfsclient Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
nfsserver Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
ntfs First version. 1999-02-03 04:01:27 +00:00
nullfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
pcic Update for pcic for kld modules and activate 1999-01-19 00:41:17 +00:00
pn Add a module Makefile for the PNIC driver. 1999-07-28 02:21:56 +00:00
portal Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
portalfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
procfs Add procfs_rlimit.c so the kernel actually compiles. 1999-05-04 21:08:58 +00:00
sf Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
sk Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
splash Use the correct value for banksize so splash_pcx works in LFB modes. 1999-06-28 13:52:29 +00:00
streams Oops. Adding a Makefile might help anyone who wants to use streams 1999-02-22 14:02:42 +00:00
svr4 Initial checkin 1999-07-30 12:50:48 +00:00
syscons The second phase of syscons reorganization. 1999-06-22 14:14:06 +00:00
ti Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
tl Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
umapfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
union Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
unionfs Sample initial set of kld-ified modules. Not all have been completely 1998-10-16 04:30:52 +00:00
vesa Unifdef VM86. 1999-06-01 18:20:36 +00:00
vinum Bring up to date to work with -CURRENT. 1999-08-14 04:56:14 +00:00
vn Oops, I accidently had devfs enabled in the vn module.. 1999-01-21 17:23:30 +00:00
vr Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
wb Convert the Winbond driver to newbus and have it compiled as a module. 1999-08-10 21:09:12 +00:00
xl Convert the VIA Rhine driver to newbus and set it up to be compiled as 1999-08-10 17:15:20 +00:00
Makefile This commit adds support for the NetBSD MII abstraction layer and 1999-08-21 17:40:53 +00:00
Makefile.inc Missed this file. 1998-10-16 04:31:35 +00:00