# How to investigate non-working onboard lan?



## hansivers (Jun 23, 2009)

Hi everybody,

For the last 10 days, I've investigated (part-time!) why the onboard lan ports of my main file server have stop working. I'm now completely clueless so any suggestions about new strategies to resolve this puzzling problem will be sincerly welcome.. 

*PROBLEM*

Mainboard : MSI K8D Master3-FA4R, with two Gigabit Onboard Lan (Broadcom BCM5704C LAN controller, 
64-bit/100MHz PCI-X bus, Dual ports)
http://www.msicomputer.com/product/p_spec.asp?model=K8D_Master3-FA4R

The lan ports were working perfectly in the initial setup (tower case). I've moved this board to a new rackmount case and reinstall FreeBSD 7.1 (lan driver = bge). The onboard lan stopped working from that moment. Specifically, the green light on the port is on, suggesting connectivity,but there is no blinking. 
I'm able to ping 127.0.0.1 and the onboard lan port IP (192.168.1.150) but not the router or any computers on this subnet.

*INVESTIGATIONS*

- The ethernet cable has been checked and is working perfectly
- The router and the switch are working perfectly
- When I plug a PCI LAN card (driver = dc) and configure it, everything is working as expected. 
   This finding pretty ruled out problems of cable, switch, freebsd network settings (resolv.conf, etc.)
- I've removed all PCI cards = not working (no conflict with PCI attributed to onboard lan) 
- I've boot with ACPI enabled or disabled = not working
- I've moved cable and networking settings (rc.conf) to the second onboard lan port = not working (the problem is with BOTH lan ports)
- I've powered off for 12hrs the motherboard to clear any data left in RAM/ROM = not working
- I've boot the server with a live Linux rescue CD = onboard lan still not working

*QUESTIONS*

At this point, my hypothesis is that there is a hardware problem with the Broadcom controller, not the ports. 
However, if the controller has been damaged when the motherboard was moved between cases, 
why is it detected at boot time and i'm able to ping it (127.0.0.1 and its IP)?

- So, any ideas/hypotheses about what happened to the onboard lan?
- Any suggestions for further investigations to help me find a solution to this puzzling problem?

*FREEBSD SETTINGS*

```
$ uname -a
FreeBSD MYBOX.MYDOMAIN.ORG 7.1-RELEASE-p6 FreeBSD 7.1-RELEASE-p6 #0: Tue Jun  9 16:26:47 UTC 2009
[email]root@i386-builder.daemonology.net[/email]:/usr/obj/usr/src/sys/GENERIC  i386

$ ifconfig -a
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:11:09:15:1c:14
        inet 192.168.1.150 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
bge1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:11:09:15:1c:ba
        media: Ethernet autoselect (none)
        status: no carrier
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000

$ netstat -i
Name    Mtu Network       Address              Ipkts Ierrs    Opkts Oerrs  Coll
bge0   1500 <Link#1>      00:11:09:15:1c:14       22 1048576        0 1048576     0
bge0   1500 192.168.1.0   hserver                 22     -       25     -     -
bge1*  1500 <Link#2>      00:11:09:15:1c:ba        0     0        0     0     0
plip0  1500 <Link#3>                               0     0        0     0     0
lo0   16384 <Link#4>                               8     0        8     0     0
lo0   16384 fe80:4::1     fe80:4::1                0     -        0     -     -
lo0   16384 localhost     ::1                      4     -        4     -     -
lo0   16384 your-net      localhost                4     -        4     -     -

$ pciconf -lv
bge0@pci0:3:2:0:	class=0x020000 card=0x16101462 chip=0x164814e4 rev=0x03 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'BCM5704 NetXtreme Dual Gigabit Adapter'
    class      = network
    subclass   = ethernet
bge1@pci0:3:2:1:	class=0x020000 card=0x16101462 chip=0x164814e4 rev=0x03 hdr=0x00
    vendor     = 'Broadcom Corporation'
    device     = 'BCM5704 NetXtreme Dual Gigabit Adapter'
    class      = network
    subclass   = ethernet

$ dmesg (short version. Find the complete version in attachment)
bge0: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x2003> mem 0xfe010000-0xfe01ffff,0xfe000000-0xfe00ffff irq 29 at device 2.0 on pci3
miibus0: <MII bus> on bge0
brgphy0: <BCM5704 10/100/1000baseTX PHY> PHY 1 on miibus0
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
bge0: Ethernet address: 00:11:09:15:1c:14
bge0: [ITHREAD]
bge1: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x2003> mem 0xfe030000-0xfe03ffff,0xfe020000-0xfe02ffff irq 30 at device 2.1 on pci3
miibus1: <MII bus> on bge1
brgphy1: <BCM5704 10/100/1000baseTX PHY> PHY 1 on miibus1
brgphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
bge1: Ethernet address: 00:11:09:15:1c:ba
bge1: [ITHREAD]

bge0: link state changed to UP
bge1: link state changed to DOWN
```


----------



## SirDice (Jun 23, 2009)

The controller could be broken, not at the chip's interface to the rest of the computer but the bit that sends/receives the electrical signals on the wire. For the computer it would still work.

Have you removed the mainboard to see if there's maybe a short circuit underneath?


----------

