For those who may not know, I've been tinkering with a new 'tulip clone'
driver for various PCI ethernet cards. I'm attempting to combine support
for several tulip like chipsets into a single driver in an attempt to
reduce code bloat. I've gotten things to where I think they work okay,
but I'm looking for testers who have FreeBSD-current running with the
following PCI chipsets:
- Macronix 98713, 98713A, 98715A or 98725 (NDC sohoware, CNet)
- Davicom DM9102 (Jaton XpressNet)
- ASIX AX88140A or AX88141 (CNet)
- ADMtek AL981 Comet or AN985 Centaur
- Lite-On 82c168 or 82c169 PNIC (LinkSys LNE100TX, Matrox 10/100 NIC,
Netgear FA310-TX rev D1, D2 or D3, Kingston KNE110TX)
- Lite-On/Macronix LC82c115 PNIC II (LinkSys LNE100TX v2.0)
- Intel 21143 (Kingston KNE100TX, D-Link DFE-570TX, any other board
with an Intel 21143 and MII-based transceiver)
If you have a card with one of these chips, download the driver from
http://www.freebsd.org/~wpaul/dc.tar.gz. This includes the source for
the dc (DEC Clone) driver plus the dcphy and pnphy drivers, as well as
pre-compiled KLD modules. The simplest way to test the driver is:
- Compile a kernel *without* the ax, al, pn, mx, dm or de drivers.
- Boot it.
- kldload /path/to/dcphy.ko
- kldload /path/to/if_dc.ko
If you have "controller miibus0" in your kernel config, then you should
be fine, otherwise you will also need to do "kldload miibus" before
loading dcphy.ko and if_dc.ko. These modules are for the x86 platform:
if you want to compile them for the alpha, you should be able to just
by using the included Makefiles.
Note the following:
- The NWAY autonegotiation support on the early rev PNIC chips
(82c168) was horribly broken and I haven't been able to make it
work reliably, so it's not currently supported. If you have one
of these older cards (LinkSys or Matrox), then you will have to
select the media mode manually. It should default to 10baseT/UTP.
If you want anything else, you need to select it manually with
ifconfig. You must also have the dcphy.ko module loaded for this
chip since it includes the pnphy pseudo driver.
- Both the 82c168 and 82c169 are set to default to store and forward
mode for transmissions. This limits performance somewhat, however
I've seen cases where setting a lower transmit threshold leads to
corrupt packets being transmitted at 100Mbps on some systems.
- The Macronix and PNIC II chips require the dcphy.ko module, since
it contains the pseudo driver that makes the built-in NWAY support
on these chipsets work.
- The 21143 cards I have use MII transceivers: there exist 21143-based
NICs that use the 21143's internal NWAY support for autonegotiation
and a symbol mode transceiver for 100Mbps, but I haven't bloody got
one, so I can't be sure that they will work right. The dcphy.ko
pseudo driver should work with the built-in 21143 NWAY, but I can't
be sure it really works correctly without a NIC to test.
- Occasionally, you may see the driver print a warning message saying
there was a transmit underrun and that it's increasing the TX threshold.
This is normal: if you see this message, the driver should recover and
the interface will continue working without any user intervention.
You may see this two or three times after the interface is brought
up: after that, you shouldn't see it anymore. If you see this message
a lot and the interface stops working after you see it, then I want
to know about it. If you only see it once or twice and the interface
recovers and keeps going, then don't be concerned; just ignore the
message and keep testing. Odds are you will only see this with the
Macronix, PNIC II and Davicom chips. You may see it with others under
certain conditions.
- You may also see a debug error message of the form:
txstat: 0x????????
where ???????? is some hexadecimal value. You shouldn't see this
under normal cicrumstances, but if you do I'd like to know about it.
I'm mainly interested in knowing how this driver code performs and how
reliable it is. I'm much more interested in reliability than peformance.
I'm also interested to see if the driver autoselects the correct speed
and duplex mode, particularly with the Macronix and PNIC II cards that
don't use MII-based PHYs.
Good tools for testing include ttcp and netperf. Testing with things
like ftp, NFS and tcpdump is also recommended. If you encounter a
condition where the interface stops receiving or sending traffic, then
I'd like to know the following:
- What if anything did you do to induce this behavior?
- Exactly what kind of NIC do you have?
- What kind of machine (CPU and PCI chipset) do you have.
- What do the following commands say when the interface stops working:
o netstat -m
o netstat -in
o ifconfig -a
- Are there any strange error message in the kernel message buffer?
(I.e. does /sbin/dmesg show anything weird.)
If the interface operates normally and there are no errors, then I'd
like to know that as well. :)
Note: please don't ask me for a -stable version of this driver. I'm
posting this to -current for a reason. If you're not running -current,
then either set up a -current box or just sit back and enjoy the show.
-Bill
--
=============================================================================
-Bill Paul (212) 854-6020 | System Manager, Master of Unix-Fu
Work: [EMAIL PROTECTED] | Center for Telecommunications Research
Home: [EMAIL PROTECTED] | Columbia University, New York City
=============================================================================
"It is not I who am crazy; it is I who am mad!" - Ren Hoek, "Space Madness"
=============================================================================
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message