Subject: Re: nfe problems
To: None <current-users@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: current-users
Date: 09/02/2006 12:11:23
On Sat, Sep 02, 2006 at 08:17:18AM +0000, Martijn van Buul wrote:
> It occurred to me that Jonathan A. Kollasch wrote in gmane.os.netbsd.current:
> > For me (running under /amd64), it always comes back, after 5-15 minutes.
> > And it does seem it may be caused by some traffic patterns.
> 
> For me (Asus A8N-E, /amd64), it never comes back by itself - but dhclient
> somehow gets the job done, and the IP alias I use to access my modem will
> continue to work.

dhclient sets the interface to promiscuous mode.  That usually entails
fiddling with the Rx filter.  Maybe that shakes the receiver out of
its slumber?

A couple more thoughts:

        ISTR reading a driver for an ethernet that said the receiver needs
        to be suspended while the multicast filter is modified; maybe
        nfe h/w is the same.  If you add a printf() to nfe_setmulti(),
        it might implicate itself in receiver catatonia.

        nfe defines error flags for Rx descriptors (NFE_RX_ERROR) and
        for the interrupt register (NFE_IRQ_RXERR|NFE_IRQ_RX_NOBUF).
        Maybe the receiver needs to be restarted after a "routine"
        Rx error with, e.g., NFE_WRITE(sc, NFE_RX_CTL, NFE_RX_START) ?

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933