From owner-freebsd-current Wed Mar 27 12:47:32 2002 Delivered-To: freebsd-current@freebsd.org Received: from pump3.york.ac.uk (pump3.york.ac.uk [144.32.128.131]) by hub.freebsd.org (Postfix) with ESMTP id D425437B405 for ; Wed, 27 Mar 2002 12:47:23 -0800 (PST) Received: from ury.york.ac.uk (ury.york.ac.uk [144.32.108.81]) by pump3.york.ac.uk (8.10.2/8.10.2) with ESMTP id g2RKlJL19354 for ; Wed, 27 Mar 2002 20:47:19 GMT Received: from localhost (gavin@localhost) by ury.york.ac.uk (8.11.6/8.11.3) with ESMTP id g2RKlIL04110 for ; Wed, 27 Mar 2002 20:47:18 GMT (envelope-from gavin.atkinson@ury.york.ac.uk) X-Authentication-Warning: ury.york.ac.uk: gavin owned process doing -bs Date: Wed, 27 Mar 2002 20:47:18 +0000 (GMT) From: Gavin Atkinson To: Subject: Problem with FreeBSD dc driver and Xircom PCMCIA card Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi, (This email was originally sent to wpaul directly, without response. I'm hoping a wider distribution may help to solve my problem) I have a Xircom RBE-100 RealPort CardBus Ethernet 10/100 PCMCIA card, which is not working correctly under 5.0-CURRENT. With the driver unmodified, I get the following: dc0: port 0x1000-0x107f mem 0x84002000-0x840020ff,0x84002000-0x8400207f irq 11 at device 0.0 on cardbus0 dc0: Ethernet address: 02:06:00:22:08:04 dc0: MII without any PHY! device_probe_and_attach: dc0 attach returned 6 pccbb0: CardBus card activation failed After probing around in the code, I decided to start trying things which looked like possible candidates to be changed. After discovering that forcing sc->dc_pmode to DC_PMODE_SYM helped, I tried the following: --- if_dc.c.old Wed Jan 16 16:33:58 2002 +++ if_dc.c Sun Mar 17 22:25:02 2002 @@ -1989,7 +1989,7 @@ * The tricky ones are the Macronix/PNIC II and the * Intel 21143. */ - if (DC_IS_INTEL(sc)) + if (DC_IS_INTEL(sc) || DC_IS_XIRCOM(sc)) dc_parse_21143_srom(sc); else if (DC_IS_MACRONIX(sc) || DC_IS_PNICII(sc)) { if (sc->dc_type == DC_TYPE_98713) This now produces the following output: dc0: port 0x1000-0x107f mem 0x84002000-0x840020ff,0x84002100-0x8400217f irq 11 at device 0.0 on cardbus0 dc0: Ethernet address: 02:06:00:22:08:04 miibus0: on dc0 dcphy0: on miibus0 dcphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto It's starting to look promising. I even get a (red) link light on the card, and once an IP is configured, ifconfig can tell if the link exists or not, though cannot establish what the speed of it is (this is into a 100M switch). However, I still have almost no network connectivity with it. An outbound ping loses 100% of packets, and hosts trying to ping it cannot arp it's MAC address. However, once I have forced an entry into the arp table of the second host, I can ping the Xircom card, albeit very slowly (snipped down for clarity): PING epsilon.ury.york.ac.uk (10.0.0.109): 56 data bytes 64 bytes from 10.0.0.109: icmp_seq=211 ttl=64 time=2020.368 ms 64 bytes from 10.0.0.109: icmp_seq=216 ttl=64 time=3030.348 ms 64 bytes from 10.0.0.109: icmp_seq=217 ttl=64 time=2020.406 ms 64 bytes from 10.0.0.109: icmp_seq=223 ttl=64 time=2020.374 ms 64 bytes from 10.0.0.109: icmp_seq=229 ttl=64 time=2020.374 ms 64 bytes from 10.0.0.109: icmp_seq=253 ttl=64 time=7070.335 ms 64 bytes from 10.0.0.109: icmp_seq=255 ttl=64 time=5050.412 ms 64 bytes from 10.0.0.109: icmp_seq=286 ttl=64 time=6060.318 ms 64 bytes from 10.0.0.109: icmp_seq=287 ttl=64 time=5050.348 ms 64 bytes from 10.0.0.109: icmp_seq=288 ttl=64 time=4040.382 ms --- epsilon.ury.york.ac.uk ping statistics --- 311 packets transmitted, 139 packets received, 55% packet loss round-trip min/avg/max/stddev = 614.382/5760.691/9090.237/2161.803 ms Note the large mean time, and the fact that I consistantly lose 55% of packets. Watching the link light, the card seems to receive the packets instantly, buffer three or four, then lose the link. WHen the link comes back, the replies to these packets all get sent back at once. I'm now at a loss as to where to go. I have no idea how to progress with this, as i'm not a kernel hacker. Has anyone seen this before? If it helps, I am using revision 3 of the card (read using pci_read_config(dev, DC_PCI_CFRV, 4) & 0xff), and it's on a Toshiba ToPIC 95B cardbus bridge. If anyone can help, i'd be most greatful... Thanks, Gavin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message