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