It's been quite a while since I updated my -current box, but when I did,
I was surprised to find that my DE500 network card (21143 chip) had stopped
working.  The switch showed no link.  Ifconfig showed "no carrier".

After some fiddling, I reverted revision 1.56 (removal of mii_pollstat call)
of sys/pci/if_dc.c and the DE500 went back to normal.  It auto-negotiated
100Mbit full duplex, and now works fine.

I expect the problem is actually in mii/dcphy.c but since I have very little
understand of how this mii stuff is supposed to work, I have to leave that
to others.  If no one is available to give me a hand here, I'll have to
go with plan B which is to simply back out rev 1.56 of if_dc.c.  (That's
not such a bad plan really, just slightly inefficient.)

On a different dc driver note, I'm interested in knowing if anyone is using
either a PNIC or Davicom with -current.  There is a slight difference between
-current and -stable, and the code in -current caused problems with PNIC and
Davicom cards when it was briefly in -stable.  I'm assuming that nobody is
using such cards, and the little bit of code is going to annoy a few people
when they try the 5.0 prerelease.  I'd like to fix this before it causes
too much trouble.

For those who are curious, the troublesome piece of code is lines 1339 and
1340 (in rev 1.69):

        if (isr & DC_ISR_TX_IDLE &&
            (isr & DC_ISR_RX_STATE) == DC_RXSTATE_STOPPED)

which waits for confirmation that the transmitter and receiver are both
idle before some configuration registers are fiddled with.  With PNIC
and Davicom cards, one or the other of these conditions never occurs.
Or at least that was the trouble when this was in -stable, back in August.
Could this problem have "magically" gone away?


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to