How to debug Ethernet connectivity

Atilla Filiz atilla.filiz at
Fri Dec 6 05:21:25 EST 2013


I have been tasked to debug a port of Barebox to our custom board. It
has one Ethernet interface. All network related(dhcp, ping ...) tasks
fail with "Network is down" error, although the link lights on my
switch are on. So I did this on 2013.06:

--- barebox-2013.06.0.orig/net/
eth.c    2013-06-02 12:24:06.000000000 +0200
+++ barebox-2013.06.0/net/eth.c    2013-12-03 16:52:40.428089000 +0100
@@ -142,12 +142,16 @@

     if (force || is_timeout(last_link_check, 5 * SECOND) ||
             !eth_current->phydev->link) {
         ret = phy_update_status(eth_current->phydev);
         if (ret)
             return ret;
         last_link_check = get_time_ns();

+    return 0;
     return eth_current->phydev->link ? 0 : -ENETDOWN;

This bypasses link detection and assumes the link is always up. This
way, I got dhcp, ping and tftp working.

How can I debug this further to hunt down the Ethernet problem?
Something seems wrong with my PHY settings. This is an iMX27 based
board. Which files/functions/structures do I need to check?

Atilla Filiz

More information about the barebox mailing list