Fwd: ED(1) driver of FreeBSD 5.2-RC1 cannot work with ISA PnP NE2000 compatible NIC

Rostislav Krasny rosti_bsd at yahoo.com
Sun Dec 21 14:47:43 PST 2003


Hello. I have a problem with ISA PnP network card and I asked a
question about that in freebsd-current mailing list at Dec 19 17:33:14
PST 2003 but I didn't get any response from somebody. Maybe the
freebsd-current mailing is a wrong place for such questions, so I'm
forwarding my original email to freebsd-hardware mailing list. Please
help me to resolve this problem.

I have an ISA PnP NE-12 (NE2000 compatible) NIC based on UMC UM9008F
chip. This is an output of 'pnpinfo' in this system:

=======start of pnpinfo output========
Checking for Plug-n-Play devices...

Card assigned CSN #1
Vendor ID UMC9008 (0x0890a355), Serial Number 0x630f0000
PnP Version 1.0, Vendor Version 16
Device Description: ISA PLUG & PLAY  Ethernet Card

Logical Device ID: UMC9008 0x0890a355 #0
        Device supports I/O Range Check
        Vendor register funcs 00
Compatible Device ID: PNP80d6 (d680d041)
    I/O Range 0x200 .. 0x3e0, alignment 0x20, len 0x20
        [not 16-bit addr]
    IRQ: 2 3 4 5 10 11 12 15 IRQ: High true edge sensitive
End Tag

Successfully got 6 resources, 1 logical fdevs
-- card select # 0x0001

CSN UMC9008 (0x0890a355), Serial Number 0x630f0000

Logical device #0
IO:  0x0200 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000
IRQ 2 0
DMA 4 4
IO range check 0x00 activate 0x01
=======end of pnpinfo output========

This card works well with FreeBSD 4.X but refuse to work with FreeBSD
5.X. Now I'm trying to make it work with FreeBSD 5.2-RC1. Following is
a part of dmesg, right after I installed 5.2-RC1:

ed1: <ISA PLUG & PLAY  Ethernet Card> at port 0x200-0x21f irq 2 on isa0
device_probe_and_attach: ed1 attach returned 22

When I saw it I thought that the problem is in PnP initialization
because IRQ 2 looks wrong. I didn't programmed FreeBSD kernel and its
device drivers in a past, so I made simple but ugly patch to the 'ed'
driver:

--- if_ed.c.orig        Wed Dec 17 12:44:49 2003
+++ if_ed.c     Fri Dec 19 16:34:32 2003
@@ -1655,7 +1655,7 @@
        struct resource *res;

        res = bus_alloc_resource(dev, SYS_RES_IRQ, &rid,
-                                0ul, ~0ul, 1, (RF_ACTIVE | flags));
+                                3ul, ~0ul, 1, (RF_ACTIVE | flags));
        if (res) {
                sc->irq_rid = rid;
                sc->irq_res = res;

After I recompiled the kernel I got following text in dmesg:

ed1: <ISA PLUG & PLAY  Ethernet Card> at port 0x200-0x21f irq 5 on isa0
ed1: bpf attached
ed1: address 00:00:21:82:25:03, type NE2000 (16 bit)

And finally when I ran 'ifconfig -a' I saw this:

ed1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::200:21ff:fe82:2503%ed1 prefixlen 64 scopeid 0x4
        ether 00:00:21:82:25:03

Ok but ed1 still doesn't work! It can send packets but cannot receive
any packet. This is how I found it. On the 5.2-RC1 box I ran ping with
IP address of second host of my home LAN and in the second
pseudo-terminal I ran tcpdump. On the destination host I ran ethereal.
The tcpdump detected several outgoing packets with ARP requests but no
incoming packet. The ethereal detected all these packets as incoming
and also several outgoing packets with ARP responses. There was no
problem to ping the same second host when I used 3Com NIC and the same
Ethernet cable with this computer.

Also there are many error messages in /var/log/messages when ed1 is UP:

Dec 19 17:01:37 vega kernel: ed1: device timeout
Dec 19 17:01:42 vega last message repeated 2 times
Dec 19 17:03:05 vega last message repeated 5 times

Do you have any idea why FreeBSD 5.x still can't work with ISA PnP
NE2000 compatible NICs like the one I have?

Thanks

P.S. since I'm not subscribed to any freebsd mailing list could you
please Cc you replies to me too?

__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/


More information about the freebsd-hardware mailing list