Commit Graph

313 Commits

Author SHA1 Message Date
augustss 5a356af882 Regen. 2000-11-06 22:32:49 +00:00
augustss 75367f830a Add some OUIs and models. From OpenBSD. 2000-11-06 22:32:26 +00:00
sommerfeld 2383226766 Silence format warning. 2000-10-11 22:03:33 +00:00
martin 10debdeb9c Fix to autonegotiation problem with some fxp cards. Fix found and reported
by Erich T. Enke et al. on current-users. This fixes PR 10550.
2000-07-27 22:14:48 +00:00
thorpej 49014bf59f Restructure the PHY entry points to use a structure of entry points
instead of discrete function pointers, and extend this to include
a "reset" entry point.  Make sure any PHY-specific reset routine is
always used, and provide one for the LXT-970 which disables MII
interrupts (as is done for a few other PHYs we have drivers for).
2000-07-04 03:28:59 +00:00
sommerfeld ea313649ff defopt MIIVERBOSE 2000-06-11 02:13:34 +00:00
augustss e169e0018c Regen. 2000-05-08 13:26:05 +00:00
augustss 43c5780ae1 Allow a verbose description to be printed with the option MIIVERBOSE. 2000-05-08 13:25:34 +00:00
augustss 56aa5c16d1 Add another AMD chip. 2000-05-08 13:23:21 +00:00
tsutsui fa07b81e43 Make to match also MII_OUI_DAVICOM.
(This seems to work, but any GENERIC does not have dmphy...)
2000-04-02 03:06:19 +00:00
thorpej fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
thorpej 411a31adb2 - Go to splimp() when sending the rtsock message regarding link status.
- Would like to notify protocols if a link goes up or down, to e.g.
  restart Duplicate Address Detection, etc.  Add a comment to this
  effect.
2000-03-15 20:34:43 +00:00
thorpej ad61d101be Factor out the tick handling code into a common function, and send
rt_ifmsg's when the link speed or link status changes.
2000-03-06 20:56:56 +00:00
thorpej a084fd2f81 Some PHYs go off into left field for a few seconds if you attempt to kick
autonegotiation while it's already enabled.
2000-02-03 06:11:13 +00:00
thorpej 9ff57fe506 Oops, missing return; 2000-02-03 05:38:57 +00:00
thorpej 22fe15d7b4 Let mii_phy_setmedia() handle the IFM_AUTO case, too. 2000-02-02 23:34:56 +00:00
thorpej 8923ca0b00 Make PHY drivers provide a pointer to their status routine, and add
a generic mii_phy_status() that calls back into the PHY.  It doesn't
do anything interesting yet, but it will soon.
2000-02-02 17:50:43 +00:00
thorpej eed75dbc26 Don't dry to diving MIIF_NOISOLATE in the PHY drivers. Instead, pass
flags down from the parent to child vi mii_attach().
2000-02-02 17:09:38 +00:00
thorpej 84dc99fdea Bring some order to the chaos which was the MII code function naming
"conventions".
2000-02-02 08:05:26 +00:00
thorpej 0738a5d4ac Driver for the Davicom DM9101 10/100 Ethernet PHY. This PHY is found
on several inexpensive 10/100 Ethernet boards (e.g. D-Link DFE-530TX,
Winbond 10/100 boards), and is also the built-in PHY on the DM9102
10/100 Ethernet chip.
2000-02-02 04:29:49 +00:00
thorpej c74e0a8db2 Add detachment support to the MII layer. 2000-01-27 16:44:30 +00:00
augustss 380035a59d Regen. 2000-01-13 20:16:49 +00:00
augustss 81ae0fb432 Add a Broadcom PHy used in the D-Link USB100 adapter.
There's no special driver for this PHY (yet).
2000-01-13 20:16:08 +00:00
pk 03c8221ad0 Use BMSR to test for `negotiation complete'; the alternative bit in the
LXT vendor register 20 is latching high and resets to low on read causing
subsequent status request to return `IFM_NONE'.
1999-12-21 10:47:00 +00:00
thorpej b67d4809ed Add a driver for the National Semiconductor DP83843 `PHYTER' 10/100
Ethernet PHY.
1999-12-07 19:36:37 +00:00
thorpej f1ba0d46a3 Regen. 1999-11-19 18:26:22 +00:00
thorpej 55495ae2e9 Add OUI for Enable Semiconductor. 1999-11-19 18:26:09 +00:00
thorpej 6c50cb64e1 Common module for bit-bang'ing the MII. 1999-11-17 17:47:59 +00:00
thorpej bca88a28c8 Add mii_down(), which is used by MAC drivers to inform PHYs that the
interface is now down.  PHYs use this to cancel pending asynchronous
operations.
1999-11-12 18:12:59 +00:00
thorpej bedeeb9896 Allow mii_phy_probe() to be called multiple times, and allow the caller
to specify either the PHY number or the PHY `offset' (1st, 2nd, 3rd, etc.)
to configure.
1999-11-04 00:22:07 +00:00
thorpej bc82bff1dc Don't add any loopback versions of media, for now. 1999-11-03 22:32:45 +00:00
thorpej 8fc600c3b1 Clean up the code that adds media a little, and make media selection
table-driven in preparation for some other changes to be made.
1999-11-03 22:30:32 +00:00
thorpej 00ba1a42eb Fix a braino in some currently-disabled code. 1999-10-27 19:05:44 +00:00
thorpej be9104dd8d Define ANAR and ANLPAR bits that are used to negotiate the 802.3x PAUSE
feature.
1999-09-29 22:49:33 +00:00
thorpej 45a337e088 Add a PHY `offset' (e.g. "first PHY on bus, second PHY on bus, ...") to
the PHY's softc.
1999-09-25 00:10:13 +00:00
soren 6c591e77d0 Fix botched RCS IDs. 1999-09-16 05:58:18 +00:00
soren 60feba0646 Spacing. 1999-09-07 21:52:06 +00:00
soren cc8ca41376 Install *reg.h 1999-09-07 21:51:49 +00:00
soren 5c44dfbe6a Note 78Q2121. 1999-09-07 19:29:52 +00:00
soren 57f7d3320b Add driver for the TDK Semiconductor 78Q2120 PHY. 1999-09-05 01:26:02 +00:00
soren e0bcd7a71a TDK Semiconductor 78Q2120 PHY, commonly used in low-power Cardbus cards. 1999-09-05 00:48:01 +00:00
soren b8e941e9b0 Add PHY driver the the Intel 82553 found on some fxp's.
Some variants of this chip need a little extra MII fix before
being usable, so this is not yet put into GENERIC's.
1999-09-05 00:40:27 +00:00
soren 0151ffe3d6 Regenerate. 1999-09-04 23:59:32 +00:00
soren 6624cc41e9 Add Intel 82553 and TSC 78Q2120. 1999-09-04 23:58:55 +00:00
drochner f04cb4036f move common support functions for phy drivers from mii.c to mii_physubr.c,
so that they are not includes if no PHY is configured
(avoids code bloat if an interface driver has the "mii" attribute but
mii is not used by the particular version)
1999-08-03 19:41:49 +00:00
thorpej e314d1d844 Correct the sense of the PCR_FLINK100 bit. From Dave Sainty, PR #7832. 1999-07-14 23:57:36 +00:00
thorpej 50f084159c SCTRL2 register number wrong. PR #7756, Johan Danielsson. 1999-06-20 16:42:37 +00:00
drochner 23ddff5688 use the new "xx" prefixed OUIs because the mapping to the ID register
bits differs from the MII_OUI() way
1999-05-14 11:40:28 +00:00
drochner 48c49dcb82 regen 1999-05-14 11:38:05 +00:00
drochner 416a47bc88 Define OUIs in a more uniform way. OUIs are fixed entities registered
with IEEE, so use the "real" OUIs for definitions.
Now unfortunately vendors differ in how the MII ID register bits are
used wrt bit and byte ordering. There is a straightforward way - bits
numbered from LSB to MSB - used by AMD, Intel, NS and QS. This is used
by the current MII_OUI() conversion macro. ICS, Seeq, SiS and TI count
the bits as they appear on the wire, and some differ completely.
Account for these cases by "xx" prefixed OUI definitions which compensate
for this, so the MII_OUI() macro can still be used.
Add AMD (the "real" AMD this time) and the 79c973 PCnet internal PHY.
1999-05-14 11:37:30 +00:00
kleink 5ea46286eb mii_phy_auto(): don't rely on an implicit declaration of the waitfor argument. 1999-04-26 14:48:57 +00:00
thorpej 83f9ab3c87 Implement asynchronous autonegotiation when driven by the MII tick
(one-second clock).  Prevents .5s delays every 5 seconds when the interface
is up but there is no link.  Fixes PR 7361.
1999-04-23 04:24:32 +00:00
thorpej 01ea9a1dd8 Regen. 1999-03-24 21:07:26 +00:00
thorpej 029f0b9d86 Silicon Integrated Systems OUI and the SiS 900 PHY model number. 1999-03-24 21:07:04 +00:00
thorpej 58beb19c16 Regen. 1999-02-05 20:20:04 +00:00
thorpej 53089c1ade Add oui for Davicom Semiconductor, and add Davicom DM9101 10/100 PHY. 1999-02-05 20:19:44 +00:00
thorpej f9467ddb8e Some PHYs are really braindead, and report incorrect IDs. Simplify the
test for this, and probe for PHYs based on media in the BMSR.
1999-02-05 02:46:34 +00:00
pk f9e92fac23 Fix bit test 1999-01-29 07:35:05 +00:00
thorpej 2b695df1dc Common code for media-from-bmcr. 1998-11-05 04:08:01 +00:00
thorpej aabf2a0809 In the status routine, always use the media selected in the BMCR if
autonegotiation is not enabled.  This is more reliable on many PHYs,
and requires fewer register reads.
1998-11-05 04:01:32 +00:00
thorpej c755434d9d Regen. 1998-11-05 03:43:57 +00:00
thorpej 84def70194 Add AMD's OUI, and the model number for the AMD 79C873 10/100 Ethernet PHY. 1998-11-05 03:43:43 +00:00
thorpej 567710942c Add a driver for "generic unknown PHYs", meant as a catch-all for
PHYs we don't have specific drivers for.  While this will not give
optimum operation, it will allow network interface drivers to at least
function while drivers for their specific PHYs are written.
1998-11-05 00:36:48 +00:00
thorpej 7d76571fd1 Tidy up the message from mii_print() somewhat. 1998-11-05 00:30:44 +00:00
thorpej 2a17544c19 Place the essentially common "ticks" and "active" members into the
mii_softc (generic phy goo), and just switch all of the PHY drivers
(except tlphy, which really does have special stuff) to use an mii_softc
instead of a private one.
1998-11-05 00:19:32 +00:00
thorpej f66039cbce Routines common between the Uknown PHY driver (forthcoming) and other
PHY drivers.  This file has ukphy_status(), which is what PHY drivers
should use if media detection is done by decoding NWay.
1998-11-04 23:59:51 +00:00
thorpej ad8b66c7c8 Return a higher-priority match than 1. These are specific drivers. This
allows for a "generic unknown PHY" driver to be implemented.
1998-11-04 23:44:09 +00:00
thorpej 51da8fc39f Factor out the common reset code. Use the NOISOLATE flags as appropriate
to prevent a PHY from being isolated in the event the MAC can't deal with
this.  (3Com 3c905B-TX, and Intel i82557).
1998-11-04 23:28:15 +00:00
thorpej b097394468 Factor out some common code from all the PHY drivers (autonegotiation, for
now.)
1998-11-04 23:07:15 +00:00
thorpej 844622de9c Define and use generic PHY read/write reg macros. 1998-11-04 22:15:40 +00:00
thorpej b5ebc7dd87 Driver for Seeq 80220/80221/80223 10/100 Ethernet PHYs. 1998-11-03 23:51:29 +00:00
thorpej 49d750db09 Regen. 1998-11-03 05:02:25 +00:00
thorpej 8adfcb5246 Define the model ID of the Seeq 84220 10/100 PHY. 1998-11-03 05:01:49 +00:00
thorpej 19fd5d178f 3Com PHY can't be isolated, so don't allow IFM_NONE. 1998-11-03 00:18:18 +00:00
thorpej 3f98e69b07 Driver for the Integrated Circuit Systems ICS1980 10/100 PHY. 1998-11-02 23:46:20 +00:00
thorpej 1f074c785d When doing a media change service request, use the media word from the
current ifmedia_entry, not from the user-supplied media word.  The
user supplied media word may not necessarily match e.g. instance (if
the parent MAC driver is intentionally ignoring instance if its expecting
multiple PHYs with non-overlapping media, e.g. TI ThunderLAN) the media
word we are actually switching to.

Since PHY drivers use `instance' to determine if they should isolate
themselves, the ThunderLAN PHY was sometimes being incorrectly isolated
when in fact the user attempted to select that PHY (for e.g. BNC operation).
1998-11-02 22:31:36 +00:00
thorpej 86fca03a0d Driver for the Level One LXT-970 10/100 Ethernet PHY. 1998-10-24 00:33:17 +00:00
thorpej afbf922a93 Don't print the revision of the 3c905B-TX's internal PHY; it's meaningless. 1998-10-23 01:52:50 +00:00
thorpej 322ba3cc84 Make sure the parent is an `ex'. The 3c905B-TX's internal PHY isn't
the only one w/ non-existent ID registers.  SIGH.
1998-10-23 01:43:09 +00:00
christos bd52ba3c5a Assign copyright to TNF. 1998-09-05 14:42:05 +00:00
fvdl 17c31a8a21 Add ETHER|NONE to default capabilities, or we'll panic when attaching
the forthcoming ex driver.
1998-08-28 12:50:36 +00:00
bouyer fdb344b38f - use sc_tlphycap with bitmasks instead of direct comparaison (needed now
that we may have (TLPHY_MEDIA_10_x | TLPHY_MEDIA_NO_10_T).
- add carrier detect for AUI/BNC.

This now works properly with a "Compaq Netelligent 10/100 TX" and a
"Compaq ProLiant Integrated Netelligent 10/100 TX", untested with others
(but should work as well).
1998-08-17 16:41:45 +00:00
thorpej ae8bdb1e72 Make sure CIMDIS is set and FLINK is clear in the PCR. 1998-08-14 00:23:26 +00:00
thorpej 94e489e277 If the autonegotiation is enabled, the PAR doesn't indicate duplex mode
properly!  Work around this by determing current active media by taking
the highest-order common bit of our advertised capabilites and the link
partner's.

If the link partner doens't do autonegotiation, then parallel detection will
pick up the media type, which will never be full-duplex, so reading the PAR
is ok in this case.

Bug pointed out by Matthias Drochner, work-around inspired by reading
the dp83840 manual, section 3.9 (IEEE 802.3u auto-negotiation).
1998-08-12 22:41:21 +00:00
thorpej d95a6e9dec Make a variable name reflect a register name. 1998-08-12 22:27:42 +00:00
thorpej 981f0cd0d0 If autonegotiation is enabled in the BMSR, and the BMCR doens't claim
that it has completed, report "none" as the active media type.
1998-08-12 20:56:34 +00:00
thorpej a24f6f77bf Ugh, don't print out "autonegotiation failed to complete" if it did.
We get these once a second if we're in auto mode, the interface is up,
and there's no carrier.
1998-08-12 20:46:47 +00:00
thorpej 5bec554354 Driver for the 3Com internal PHY, found on 3c905B-TX cards (and maybe
some 3c905-TX?).  Partially from Frank van der Linden.
1998-08-12 08:46:20 +00:00
thorpej 9b46e98b21 Adapt to attribute name change. Also, deal with 3Com PHYs that report
0/0 as their oui/model IDs.
1998-08-11 00:41:44 +00:00
thorpej f0d19c2ee1 Change the name of the attribute to "mii". 1998-08-11 00:05:36 +00:00
thorpej e7643533b6 Adapt to MII layer changes. 1998-08-11 00:03:12 +00:00
thorpej e8e237ffc6 Device driver for the Quality Semiconductor QS6612 PHY, found in
SMC EtherPower-II cards.
1998-08-11 00:01:03 +00:00
thorpej 6bae1a0bea Device driver for the Intel i82555 PHY. 1998-08-11 00:00:28 +00:00
thorpej 045a100420 Adapt to the new MII layer. This PHY driver now properly supports
802.3u autonegotiation, and will report the precise media selected
by autonegotiation by reading PHY-specific registers.

XXX There is still some work to do wrt. autonegotiation and the
BNC/AUI support in the ThunderLAN PHY.
1998-08-10 23:59:58 +00:00
thorpej f66f3b1ba9 Adapt to the new MII layer. This PHY driver now properly supports
802.3u autonegotiation, and will report the precise media selected
by autonegotiation by reading PHY-specific registers.
1998-08-10 23:58:39 +00:00
thorpej ad00a98756 Initial generation. 1998-08-10 23:56:19 +00:00
thorpej 3f8be46d4d Near complete rewrite of the MII layer to present an interface compatible
with BSDI's MII layer to device drivers.
1998-08-10 23:55:16 +00:00
cgd 651b44e211 Rework the way kernel include files are installed. In the new method,
as with user-land programs, include files are installed by each directory
in the tree that has includes to install.  (This allows more flexibility
as to what gets installed, makes 'partial installs' easier, and gives us
more options as to which machines' includes get installed at any given
time.)  The old SYS_INCLUDES={symlinks,copies} behaviours are _both_
still supported, though at least one bug in the 'symlinks' case is
fixed by this change.  Include files can't be build before installation,
so directories that have includes as targets (e.g. dev/pci) have to move
those targets into a different Makefile.
1998-06-12 23:22:30 +00:00
thorpej 5bc2217a49 Nuke __BROKEN_INDIRECT_CONFIG. 1998-06-09 07:24:55 +00:00
thorpej 8354e68508 Remove "class" declarations, and add "devclass" declarations where
appropriate.  Fix several inconsistencies between device class and
attributes.  Mostly from Chris Demetriou.
1998-02-16 22:12:45 +00:00
bouyer 0435e7ea98 Correct a bogosity in the adapter->mii attach code pointed out by cgd:
in pci/if_tl.c, call config_found() with a print function, instead of
printing ourself a message in if_tl.c if no miibus was found. The print
function is in mii/mii.c (mii_adapter_print()) so that it can be used by any
adapter (idea from the scsi system).
1998-02-11 19:02:11 +00:00
thorpej 095c4c092d Adjust for config changes. 1998-01-12 09:23:08 +00:00
perry fff05a68ab RCSID Police. 1998-01-05 07:31:05 +00:00
thorpej c356454eef Cosmetic changes. 1997-11-17 09:08:26 +00:00
thorpej 1413de77e0 KNF. 1997-11-17 09:02:27 +00:00
thorpej fc216e9a85 Cosmetic changes. 1997-11-17 08:56:08 +00:00
thorpej 5bf3550518 KNF. 1997-11-17 08:52:38 +00:00
thorpej 3a748eae8f KNF. 1997-11-17 08:38:04 +00:00
thorpej 942f131579 Fix RCS ID. 1997-11-17 08:28:09 +00:00
thorpej 7602fbd930 Cosmetic changes. 1997-11-17 08:25:56 +00:00
christos 473310c0a4 PR/4510: William Coldwell: Recognize TI thunderlan. 1997-11-16 22:38:33 +00:00
bouyer b1b04efc58 Correct 'ThunderLAN' spelling 1997-10-21 05:54:21 +00:00
bouyer 10fcf021a5 Generic functions for the MII layer. mii attaches to mii-capable network
adapters, and provide media-selections and status to the parent.
This includes drivers for the Thunderland integrated PHY, and
National Semiconductor's DP83840A.
Note: The interface betweeen network controller and mii is not complete yet,
and will need some minors tweaks to support media auto-selection.
1997-10-17 17:33:45 +00:00