Subject: Re: Why does this fix my problem?
To: Monroe Williams <monroe@pobox.com>
From: Andrew Brown <atatat@atatdot.net>
List: current-users
Date: 12/31/2002 21:05:50
>I've been having serious problems with a D-Link DFE-570TX quad Ethernet
>board ever since I bought it some time ago.  If I try to use more than one
>port at a time, I pretty quickly get:
>
>tlp0: filter setup and transmit timeout
>tlp0: filter setup and transmit timeout
>tlp0: filter setup and transmit timeout
>...
>
>and all the ports on the card cease processing packets.
>
>I've posted on a couple of NetBSD lists once or twice without finding a
>solution.  
>
><http://mail-index.netbsd.org/current-users/2002/05/03/0004.html>

i don't think i had my card when you wrote this, so i didn't write
anything then.  but...

>It's possible that there's something about the machine this card is running
>in that triggers the problem.  (It's an old PowerMac 7500 running
>NetBSD-macppc-current -- 1.6K at the moment.)

that might be it.

>I was recently looking into the problem again, and noticed that all four
>Tulip chips on the card end up on the same IRQ:
>
>-----
>ppb0 at pci0 dev 15 function 0: Digital Equipment DECchip 21152 PCI-PCI
>Bridge (rev. 0x03)
>pci1 at ppb0 bus 1
>pci1: i/o space, memory space enabled
>tlp0 at pci1 dev 4 function 0: DECchip 21143 Ethernet, pass 4.1
>tlp0: interrupting at irq 25
>tlp0: Ethernet address 00:80:c8:b9:7b:45
>nsphyter0 at tlp0 phy 1: DP83843 10/100 media interface, rev. 0
>nsphyter0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
>tlp1 at pci1 dev 5 function 0: DECchip 21143 Ethernet, pass 4.1
>tlp1: interrupting at irq 25
>tlp1: Ethernet address 00:80:c8:b9:7b:46
>nsphyter1 at tlp1 phy 1: DP83843 10/100 media interface, rev. 0
>nsphyter1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
>tlp2 at pci1 dev 6 function 0: DECchip 21143 Ethernet, pass 4.1
>tlp2: interrupting at irq 25
>tlp2: Ethernet address 00:80:c8:b9:7b:47
>nsphyter2 at tlp2 phy 1: DP83843 10/100 media interface, rev. 0
>nsphyter2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
>tlp3 at pci1 dev 7 function 0: DECchip 21143 Ethernet, pass 4.1
>tlp3: interrupting at irq 25
>tlp3: Ethernet address 00:80:c8:b9:7b:48
>nsphyter3 at tlp3 phy 1: DP83843 10/100 media interface, rev. 0
>nsphyter3: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
>-----

fwiw, mine (in a i386 machine) probes thusly:

    ppb1 at pci0 dev 14 function 0: Digital Equipment DECchip 21152 PCI-PCI Bridge (rev. 0x03)
    pci2 at ppb1 bus 2
    pci2: i/o space, memory space enabled, rd/line, wr/inv ok
    tlp0 at pci2 dev 4 function 0: DECchip 21143 Ethernet, pass 4.1
    tlp0: interrupting at irq 12
    tlp0: Ethernet address 00:80:c8:b9:35:c9
    nsphyter0 at tlp0 phy 1: DP83843 10/100 media interface, rev. 0
    nsphyter0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    tlp1 at pci2 dev 5 function 0: DECchip 21143 Ethernet, pass 4.1
    tlp1: interrupting at irq 9
    tlp1: Ethernet address 00:80:c8:b9:35:ca
    nsphyter1 at tlp1 phy 1: DP83843 10/100 media interface, rev. 0
    nsphyter1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    tlp2 at pci2 dev 6 function 0: DECchip 21143 Ethernet, pass 4.1
    tlp2: interrupting at irq 10
    tlp2: Ethernet address 00:80:c8:b9:35:cb
    nsphyter2 at tlp2 phy 1: DP83843 10/100 media interface, rev. 0
    nsphyter2: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    tlp3 at pci2 dev 7 function 0: DECchip 21143 Ethernet, pass 4.1
    tlp3: interrupting at irq 11
    tlp3: Ethernet address 00:80:c8:b9:35:cc
    nsphyter3 at tlp3 phy 1: DP83843 10/100 media interface, rev. 0
    nsphyter3: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

and it works just fine.
>...
>motherboard using that bridge with 4 cards plugged in.  Is there code
>somewhere that knows it's dealing with a multiport card?

the manner in which it probes should tell you that there isn't.  the
card presents to the system as pci-pci bridge with four pci devices
attached to it.  that nice abtraction at the front alleviates the need
for special purpose code.

-- 
|-----< "CODE WARRIOR" >-----|
codewarrior@daemon.org             * "ah!  i see you have the internet
twofsonet@graffiti.com (Andrew Brown)                that goes *ping*!"
werdna@squooshy.com       * "information is power -- share the wealth."