On Thu, Aug 28, 2008 at 10:18:28PM -0500, Jacob Owens wrote: > To resolve the issue, Pyun first had my patch amphy.c , then the dc driver. > The DC patch fixed my issue. Here is what i had to do: > > 1. save attached patch to /tmp > 2. #cd /usr/src > 3. #patch -p0 < /tmp/dc.patch > 4. rebuild/install kernel and reboot. i used instructions from here: > http://www.freebsdmadeeasy.com/tutorials/freebsd/recompiling-the-kernel-in-freebsd.php > > THANK YOU to Pyun YongHyeon and the freebsd-net group for helping me with > this issue!!! > > Save the text below and save as dc.patch. (The first line is 'index: > sys/dev/dc......' ,Last line is ' * When the init.....' > > Index: sys/dev/dc/if_dc.c > =================================================================== > --- sys/dev/dc/if_dc.c (revision 181654) > +++ sys/dev/dc/if_dc.c (working copy) > @@ -2868,6 +2868,12 @@ > ifp = sc->dc_ifp; > mii = device_get_softc(sc->dc_miibus); > > + /* > + * XXX Can cause autonegotiation failure on certain models > + * as DC21143 overdrive mii_ticks. > + */ > + mii_tick(mii); > + > if (sc->dc_flags & DC_REDUCED_MII_POLL) { > if (sc->dc_flags & DC_21143_NWAY) { > r = CSR_READ_4(sc, DC_10BTSTAT); > @@ -2881,19 +2887,15 @@ > sc->dc_link = 0; > mii_mediachg(mii); > } > - if (sc->dc_link == 0) > - mii_tick(mii); > } else { > r = CSR_READ_4(sc, DC_ISR); > if ((r & DC_ISR_RX_STATE) == DC_RXSTATE_WAIT && > sc->dc_cdata.dc_tx_cnt == 0) { > - mii_tick(mii); > if (!(mii->mii_media_status & IFM_ACTIVE)) > sc->dc_link = 0; > } > } > - } else > - mii_tick(mii); > + } > > /* > * When the init routine completes, we expect to be able to send
For the records, a more appropriate fix (the above patch just lets dc(4) bypasse the DC_REDUCED_MII_POLL handling completely) was commited as r182461. Marius _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"