Re: yongari nfe problems

From: Rainer Hurling <rhurlin_at_gwdg.de>
Date: Mon, 12 Mar 2007 22:41:40 +0100
Pyun YongHyeon, thank you for reply.

Sorry for the late answer, but I have been on business trip.

Pyun YongHyeon schrieb:
> On Sun, Mar 11, 2007 at 09:09:47AM +0100, Rainer Hurling wrote:
>  > Pyun YongHyeon schrieb:
>  > >[... SNIP ...] 
>  > >
>  > >Did stock nfe(4) work on MCP55?
>  > >(I'm not interested in how nve(4) works on MCP55.)
>  > >I'm afraid MCP55 requires different programming. Searching archives
>  > >for Linux forcedeth driver also reveals issues on MCP55 which is
>  > >exactly the same issue I think.
>  > >I'll let you know if I find a clue but it's hard to fix due to lack
>  > >of MCP55 hardware and documentation.
>  > 
>  > 
>  > Yes, nfe(4) works on MCP55, but with some strange behaviour, see below.
>  > 
>  > I am working with FreeBSD 7.0-CURRENT from 03/07/2007 on MSI K9N Neo. 
>  > 'dmesg | grep nfe' gives me:
>  > 
>  > nfe0: <NVIDIA nForce MCP55 Networking Adapter> port 0xb000-0xb007 mem
>  > 0xfbef7000-0xfbef7fff,0xfbefa800-0xfbefa8ff,0xfbefa400-0xfbefa40f irq 21
>  > at device 8.0 on pci0
>  > miibus0: <MII bus> on nfe0
>  > ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
>  > ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
>  > 1000baseT-FDX, auto
>  > nfe0: using obsoleted if_watchdog interface
>  > nfe0: Ethernet address: xx:xx:xx:xx:xx:xx
>  > nfe0: [ITHREAD]
>  > 
>  > It seems that there is a problem with watchdog. Perhaps the choosen 
>  > media interface ukphy0 is not correct?
>  > 
> 
> Normally nVidia GigEs use Marvell PHY which is served by e1000phy(4)
> so I guess power saving mode had ukphy attach the PHY.
> Booting/loading module with bootverbose mode will show up OUI/model/rev
> of the PHY. Please let me know the OUI/model/rev output of ukphy(4).

for ukphy0 bootverbose gives me :

OUI 0x0001c1  model 0x0002  rev. 0


>  > In the context with watchdog I observe an interesting behaviour of nfe0: 
>  > After running WindowsXP on my board, I am not able to use the interface 
>  > any more. Booting FreeBSD always gives me messages like this:
>  > 
>  > -----
>  > nfe0: link state changed to DOWN
>  > /etc/rc.d/dhclient: WARNING: $background_dhclient_nfe0 is not set 
>  > properly -
>  > see
>  >  rc.conf(5).
>  > nfe0: no link ....nfe0: link state changed to UP
>  >  got link
>  > DHCPREQUEST on nfe0 to 255.255.255.255 port 67
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > nfe0: link state changed to UP
>  > DHCPREQUEST on nfe0 to 255.255.255.255 port 67
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > nfe0: link state changed to UP
>  > DHCPDISCOVER on nfe0 to 255.255.255.255 port 67 interval 5
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > DHCPDISCOVER on nfe0 to 255.255.255.255 port 67 interval 9
>  > nfe0: link state changed to UP
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > nfe0: link state changed to UP
>  > DHCPDISCOVER on nfe0 to 255.255.255.255 port 67 interval 14
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > nfe0: link state changed to UP
>  > DHCPDISCOVER on nfe0 to 255.255.255.255 port 67 interval 18
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > nfe0: link state changed to UP
>  > DHCPDISCOVER on nfe0 to 255.255.255.255 port 67 interval 9
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > nfe0: link state changed to UP
>  > DHCPDISCOVER on nfe0 to 255.255.255.255 port 67 interval 6
>  > nfe0: watchdog timeout
>  > nfe0: link state changed to DOWN
>  > No DHCPOFFERS received.
>  > Trying recorded lease xxx.xxx.xxx.xxx
>  > nfe0: link state changed to UP
>  > bound: renewal in 429590 seconds.
>  > lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
>  >         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
>  >         inet6 ::1 prefixlen 128
>  >         inet 127.0.0.1 netmask 0xff000000
>  > nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>  >         options=2b<RXCSUM,TXCSUM,VLAN_MTU,JUMBO_MTU>
>  >         ether xx:xx:xx:xx:xx:xx
>  >         media: Ethernet autoselect (100baseTX <full-duplex>)
>  >         status: active
>  > -----
>  > 
>  > When booting 'cold' (means full power down) FreeBSD is able to use 
>  > nfe(4) in the correct way. Also booting FreeBSD again after running 
>  > FreeBSD gives me no errors. Obviously WindowsXP does not clear up all 
>  > registers in MCP55 after leaving?
>  > 
> 
> I think Windows put the NIC/PHY in sleep/power saving mode and nfe(4)
> will need a way to take PHY/NIC out of power down mode.
> Try a WIP version at the following URL.
> 
> http://people.freebsd.org/~yongari/nfe/WIP/if_nfe.c
> http://people.freebsd.org/~yongari/nfe/WIP/if_nfereg.h
> http://people.freebsd.org/~yongari/nfe/WIP/if_nfevar.h
> 
> Note, it's just guess work from the Linux driver and I just tested
> compilation. Due to lack of time/MCP55 hardware it's not easy for me
> to fix.

I tried your fixes. Bingo, you are right! Now I am able to use nfe(4) 
directly (without coldstart) after leaving from WindowsXP.

Thank you very much,

Rainer Hurling
Received on Mon Mar 12 2007 - 20:41:48 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC