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>