This is a discussion on OpenBSD 3.3 patch for NIC 3CSOHO100B-TX within the mailing.openbsd.tech forums, part of the OpenBSD category; --> Hello, Based on the FreeBSD patch at: http://www.freebsd.org/cgi/query-pr.cgi?pr=49059 and the information about the Linux network drivers for the 3Com ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hello, Based on the FreeBSD patch at: http://www.freebsd.org/cgi/query-pr.cgi?pr=49059 and the information about the Linux network drivers for the 3Com OfficeConnect network cards labelled 3CSOHO100B-TX I patched the file sys/dev/pci/if_dc_pci.c in the OpenBSD 3.3 (release) kernel tree. It now recognizes the network card correctly (dmesg output): dc0 at pci0 dev 14 function 0 "3Com 3cSOHO 100B-TX" rev 0x31: irq 7 \ address 00:04:75:b2:7d:0f ukphy0 at dc0 phy 1: Generic IEEE 802.3u media interface ukphy0: OUI 0x000749, model 0x0001, rev. 1 and seems to work fine with the dc driver: dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 address: 00:04:75:b2:7d:0f media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.0.38 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::204:75ff:feb2:7d0f%dc0 prefixlen 64 scopeid 0x3 I can get sustained ftp transfer rates of about 9.8 MB/sec with this card. I would be glad if the patch could be applied to the kernel tree since from the mailing list archives it seems to me that in the past several people had trouble getting these cards to work. Here is the patch: ########################## CUT HERE ################################ --- sys/dev/pci/if_dc_pci.c.orig Thu Oct 16 16:57:48 2003 +++ sys/dev/pci/if_dc_pci.c Fri Oct 17 09:49:45 2003 @@ -99,10 +99,11 @@ { PCI_VENDOR_LITEON, PCI_PRODUCT_LITEON_PNICII }, { PCI_VENDOR_ACCTON, PCI_PRODUCT_ACCTON_EN1217 }, { PCI_VENDOR_ACCTON, PCI_PRODUCT_ACCTON_EN2242 }, { PCI_VENDOR_CONEXANT, PCI_PRODUCT_CONEXANT_RS7112 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_21145 }, + { PCI_VENDOR_3COM, PCI_PRODUCT_3COM_3CSHO100BTX }, { 0, 0 } }; int dc_pci_match(struct device *, void *, void *); void dc_pci_attach(struct device *, struct device *, void *); @@ -322,10 +323,21 @@ command = pci_conf_read(pc, pa->pa_tag, DC_PCI_CFLT); command &= 0xFFFF00FF; command |= 0x00008000; pci_conf_write(pc, pa->pa_tag, DC_PCI_CFLT, command); } + break; + case PCI_VENDOR_3COM: + if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_3COM_3CSHO100BTX) { + found = 1; + sc->dc_type = DC_TYPE_AN983; + sc->dc_flags |= DC_TX_USE_TX_INTR; + sc->dc_flags |= DC_TX_ADMTEK_WAR; + sc->dc_pmode = DC_PMODE_MII; + } + dc_eeprom_width(sc); + dc_read_srom(sc, sc->dc_romwidth); break; case PCI_VENDOR_ADMTEK: if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADMTEK_AL981) { found = 1; sc->dc_type = DC_TYPE_AL981; ########################## CUT HERE ################################ Regards, Ch. Scheurer -- Christoph Scheurer contact: http://www.theo.chemie.tu-muenchen.d...ages/scheurer/ |