Subject: Any success with 3Com 3c905B (PCI 10baseT/100baseTX) card?
To: None <current-users@NetBSD.ORG>
From: Nathan J. Williams <nathanw@MIT.EDU>
List: current-users
Date: 04/16/1998 00:14:25
	One of my users tried to do an installation today with a 1.3.1
kernel on a system with a 3Com 3c905B card. After noticing that the
kernel failed to recognize the PCI ID, and finding that -current
didn't have the card listed, I did a little hunting on the PCI ID list
mentioned in sys/dev/pci/pcidevs, verified that the ID the card
reported was known, and added appropriate glue to pcidevs and the
if_ep_pci.c match and attach routines.

	The card was found, but failed quickly in epconfig(). The
output was:
ep1: wrote 0x7FF to TX_AVAIL_THRESH, read back 0x0. Interface disabled

	This seems decidedly wrong. The only hardware documentation I
have handy is for the 3c509/515/589, and while it doesn't actually say
that 0 is a invalid value for this register, it's not clear what it
would mean, and it almost certaintly shouldn't read 0 after having a
non-0 value written to it. It did say that the low two bits of the
value written with the SET_TX_AVAIL_THRESH command should be zero, but
didn't say what would happen otherwise - as when we write 0x7FF. A bit
desparate for ideas, I changed the code to write 0x7FC (as would
happen if we masked the write with EP_LARGEWIN_MASK, which we should
probably be doing, and which itself should probably be 0x7FC rather
than 0xFFC, given the 11-bit width of the command argument). No dice.

	As far as I can tell from 3Com's documentation (I do wish that
they would put their technical manuals online) the 905B (PCI ID
0x9055) is their PCI offering that supports 10baseT and 100baseTX, as
opposed to the plain 905, which supports 10baseT and 100baseT4 (how
the 905B differs from the (PCI ID 0x9050) "3C905-TX Fast Etherlink XL
PCI 10/100" card I do not know). This implies that the chipset is
essentially the same as the one we support and shouldn't be pulling
strange tricks like those above.

	After running 3Com's autoconfiguration program under Win95,
the messages changed to:
ep1 at pci0 dev 13 function 0: 3Com 3c905 Ethernet
ep1: Erase pencil mark!
ep1: Interrupting at irq10

	This also seems wrong, even though I don't actually know if
the 905B still has the pencil area... 

	Any ideas? Has anyone successfully used, or unsuccessfully
tried to use this card?

	- Nathan