I was having some problems getting a few NICs to talk at 100Mbps like they said they should be able to do. Linux sees these cards as "3Com Corporation 3c595 100BaseTX [Vortex]." They use the 3c59x driver.

I couldn't get the driver included with kernel 2.4.20 to speak 100Mbps at all, so I headed over to http://www.scyld.com/network/vortex.html to download the newer version. This one allowed my NIC to experience the 100Mbps goodness in most of its glory (only half-duplex, as it turns out).

However, the new 3c59x driver doesn't like being compiled directly into the kernel, as opposed to being a module, so I hacked it up a bit to make it a bit more friendly in that respect. If you've somehow stumbled here on your own, note that these patches are entirely unofficial.

So there you go. If you'd like to see the discussion on the Vortex mailing list about this subject, you can find it at http://www.scyld.com/pipermail/vortex/2002-December/002216.html, along with a recommendation by Donald Becker to just stay away from this card in the first place. Enjoy!

Update 2003.03.04 - The mailing list archives don't seem to exist anymore. I'll link to an mbox-style text file containing our conversation, though. Enjoy...

Update 2003.06.04 - The mailing list archives do, in fact, exist again. I'll leave the mbox up though.

Update 2003.12.15 - There's a newer version of the driver available at scyld.com (0.99Za) which seems to work better than the previous ones, and it's pretty trivial to merge in. This diff should be applied to 3c59x.c, and then make sure that kern_compat.h, pci-scan.c, and pci-scan.h are included in drivers/net (again, this is only if you're building the driver into the kernel as opposed to a module - if you're using modules you can probably just compile the driver per instructions at scyld.com), and update the Makefile to include the proper dependencies.