Issue found in Armada 370: 10Mbps ethernet connection can't get IP

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Jul 7 02:00:14 PDT 2014


Dear Maggie Mae Roxas,

On Sun, 6 Jul 2014 19:56:27 -0700, Maggie Mae Roxas wrote:

> We just found out last week that 10Mbps ethernet (SGMII) connection
> can't obtain IP in recent kernel versions (3.10.x and above). Here are
> the details:
> 
> Processor: Armada 370 88F6707
> Board: Custom
> Kernel versions tried:
> 3.10.24 (issue exists)
> 3.13.9 (issue exists)
> 3.2.43 (issue does NOT exist)
> U-Boot versions tried: 2012_Q4 and 2013_Q1 from Marvell extranet
> 
> Some more important notes:
> Both 100Mbps and 1000Mbps have no issues.
> Issue does not exist at u-boot level (via static IP address, confirmed
> via ping - results: 'x.x.x.x is alive')
> We have different LED configs for 10, 100 and 1000 Mbps - and LED
> shows 10Mbps is established (even ethtool does). However, we just
> can't obtain IP.
> Our kernel version 3.2.43 have patches from Marvell extranet (for Armada 370)
> 
> Is there a known issue for this?

Thanks for the report. Can you test the patch below?

Thanks,

Thomas

diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 45beca1..d49f08d 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -2529,7 +2529,7 @@ static void mvneta_adjust_link(struct net_device *ndev)
 
                        if (phydev->speed == SPEED_1000)
                                val |= MVNETA_GMAC_CONFIG_GMII_SPEED;
-                       else
+                       else if (phydev->speed == SPEED_100)
                                val |= MVNETA_GMAC_CONFIG_MII_SPEED;
 
                        mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);


-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list