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]"

Reply via email to