Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Aug 1999 18:54:52 -0400 (EDT)
From:      Bill Paul <wpaul@skynet.ctr.columbia.edu>
To:        current@freebsd.org, stable@freebsd.org
Subject:   FYI for those with 3Com 3c905C cards
Message-ID:  <199908022254.SAA25513@skynet.ctr.columbia.edu>

next in thread | raw e-mail | index | archive | help
I've gotten a couple of reports from people claiming to have trouble
with the 3c905C, usually along the lines of "the autonegotiation works
and I can bring the card up, but I can't receive or send any packets."

(For those who don't know, the 3c905C differes from the 3c905B in that
it has a new 3Com XL ASIC revision called the "Tornado," plus has
management features including wake on LAN and SMBUS interfaces, and
it has a built-in boot ROM with support for BOOTP, DHCP, PXE, and a
bunch of other acronyms.)

First off, this is not entirely correctly: in the few cases where I've
been able to squeeze information out of people, I've found that running
tcpdump on the interface shows that the 3c905C does at least receive
some traffic, so "can't send or receive any packets" is not entirely
correctly. I haven't gotten anyone to do proper transmitter testing.

Diagnosing this has been hard, largely due to the fact that I haven't
been able to duplicate the problem with my hardware: I've tried a
Dell PowerEdge 2300/400 dual PII 400 SMP box, a P200 GW2K box, a
486/66 and my alphastation 200, and in each case I was able to send
and receive traffic without any apparent problems. The only peculiarity
I encountered was with the PowerEdge system. The two cards I have were
sent to me by 3Com; when the first one arrived, I plugged it into one
of the primary PCI slots in the Dell (one of the same slots I'd used
before with several other cards) and the machine refused to power on.
Initially, I thought the card was hosed, and 3Com sent me a second one,
which exhibited the same behavior. Finally I discovered that if I
put the card in one of the secondary PCI slots (which turns out to
be PCI bus 2, connected to PCI bus 0 via a DEC PCI-PCI bridge), the
machine would power on fine and the card would work correctly in
FreeBSD.

(For all you armchair technicians out there, no, it's not a problem
with the card drawing too much power or a shorted trace on the card.
I don't know what it is, though I suspect some PCI BIOS weirdness.)

Today I was experimenting with another machine, a Dell PowerEdge 4300/500
dual PIII 500Mhz system, and I did finally encounter a problem: for some
reason, the 3c905C refused to receive certain NFS packets (in particular
NFS create requests). I don't know why this happened exactly, however
I fixed the problem by modifying the xl driver code to issue individual
"reset TX block" and "reset RX block" command after issuing the global
reset command in xl_reset(). Now that the transmitter and receiver are
reset as part of the card initialization, everything seems to work
correctly.

I committed this changed to the xl driver in both the current and stable
branches today, plus I updated the code at http://www.freebsd.org/~wpaul/3Com.
If you have a 3c905C card and have been having trouble getting it to
work with FreeBSD, I would appreciate it if you could cvsup to the
latest -stable or -current or download the driver from the web server
and give it a try. I'm not positive that this will fix all the problems
people have been seeing, but I'm very curious to see what effect it has.

If you notice any improvements (or not), please let me know at
wpaul@skynet.ctr.columbia.edu.

-Bill

-- 
=============================================================================
-Bill Paul            (212) 854-6020 | System Manager, Master of Unix-Fu
Work:         wpaul@ctr.columbia.edu | Center for Telecommunications Research
Home:  wpaul@skynet.ctr.columbia.edu | 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908022254.SAA25513>