On Mon, Feb 25, 2008 at 05:17:03PM +0200, Andriy Gapon wrote: > on 25/02/2008 15:02 Andriy Gapon said the following: > > on 04/02/2008 05:52 Pyun YongHyeon said the following: > >> On Fri, Feb 01, 2008 at 03:56:17PM +0200, Andriy Gapon wrote: > >> > on 01/02/2008 15:42 Andriy Gapon said the following: > >> > > on 01/02/2008 14:36 Pyun YongHyeon said the following: > >> > >> After applying attached patch and let me know the output of > >> > >> "devid : xxx, revid : xxx, pwr = xxx". It would be even better > >> > >> if you can show me the above message for working/non-working case. > >> > >> > >> > >> > >> > > > >> > > Applied the patch with correction to actually print rev instead of > >> dev > >> > > for the second time :-) > >> > > This is in working case: > >> > > devid : 269, revid : a3, pwr = 00000003 > >> > > >> > A clarification: I just applied the patch, recompiled and re-loaded the > >> > module. There was no reboot/poweroff/reset in between. > >> > > >> > > Will wait for the non-working situation. > >> > > > >> > > >> > >> Revert previous patch and try attached patch again and let me know > >> how it goes. > >> > >> > > > > Tried it - still no joy, the behavior is as before. > > If I gracefully reboot the machine or power down and then up, then > > everything is OK. But if I press "reset" button and boot up, the nfe > > interface is "dead". > > BTW, I kept the line for printing devid/revid/pwr and output is the same > > in all cases. > > > > Not sure if that is related but Linux forcedeth driver seems to do some > stuff that we don't do: > http://lxr.linux.no/linux+v2.6.24/drivers/net/forcedeth.c#L5271 >
Nice catch! The register name in nfe(4) for NvRegMIIMask is NFE_SETUP_R4. According to Linux driver it's used for generating link state change interrupt. So I guess nfe(4) may have to clear the register in nfe_stop(). How about clearing the register as attached patch? (Sorry I couldn't test this ATM...) -- Regards, Pyun YongHyeon
--- if_nfe.c.orig 2008-02-02 04:36:24.000000000 +0900 +++ if_nfe.c 2008-02-26 16:32:45.000000000 +0900 @@ -2925,6 +2925,8 @@ /* disable Rx */ NFE_WRITE(sc, NFE_RX_CTL, 0); + NFE_WRITE(sc, NFE_SETUP_R4, 0); + /* disable interrupts */ nfe_disable_intr(sc);
_______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "[EMAIL PROTECTED]"