Network interface not working: watchdog timeout error

From: Rocky Hotas <rockyhotas_at_post.com>
Date: Mon, 15 Jan 2024 18:45:58 UTC
Hello!
With FreeBSD 14.0-RELEASE I have this (quite old) network interface,
which is embedded in the motherboard:

nfe0@pci0:0:15:0:       class=0x020000 rev=0xa2 hdr=0x00 vendor=0x10de device=0x07dc subvendor=0x1734 subdevice=0x115b
    vendor     = 'NVIDIA Corporation'
    device     = 'MCP73 Ethernet'
    class      = network
    subclass   = ethernet
    bar   [10] = type Memory, range 32, base 0xfe22a000, size 4096, enabled
    bar   [14] = type I/O Port, range 32, base 0x30e8, size 8, enabled
    bar   [18] = type Memory, range 32, base 0xfe229000, size 256, enabled
    bar   [1c] = type Memory, range 32, base 0xfe228000, size 16, enabled
    cap 01[44] = powerspec 2  supports D0 D1 D2 D3  current D0

From the dmesg:

nfe0: <NVIDIA nForce MCP73 Networking Adapter> port 0x30e8-0x30ef mem 0xfe22a000-0xfe22afff,0xfe229000-0xfe2290ff,0xfe228000-0xfe22800f irq 21 at device 15.0 on pci0
miibus0: <MII bus> on nfe0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
nfe0: Ethernet address: ...

It performed normally for several days and across several reboots. Then,
without applying any modification to the configuration, the system was
physically powered down and booted again: the network card did no more
work. After another reboot, nothing changed.

The two LEDs in the Ethernet socket are active: the orange one is fixed,
the green one blinks every now and then (not so often). After physically
disconnecting and reconnecting the Ethernet cable, nothing changed.

The host can not ping the LAN and can not receive ping. All the network
settings (which worked till some minutes before) are ok, including
`ifconfig', where it is `UP', 1000BaseT; routes and /etc/resolv.conf
are OK.

The only relevant information is maybe at the end of the dmesg, where
after some minutes this sequence has been printed several times:

nfe0: watchdog timeout
nfe0: link state changed to DOWN
nfe0: link state changed to UP

but even when `link state changed to UP' the interface does not work.

Is there anything that can be done from the OS, or is it a hardware issue?

Bye!

Rocky