[PATCH 1/1] phy: if the link partner just ack us wait the end of the autoneg

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Thu Nov 15 04:29:41 EST 2012


On 09:01 Thu 15 Nov     , Sascha Hauer wrote:
> On Wed, Nov 14, 2012 at 10:03:19PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> > ---
> >  drivers/net/phy/phy.c |   12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> > 
> > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> > index 43738c2..daa657f 100644
> > --- a/drivers/net/phy/phy.c
> > +++ b/drivers/net/phy/phy.c
> > @@ -578,6 +578,18 @@ int genphy_read_status(struct phy_device *phydev)
> >  		if (lpa < 0)
> >  			return lpa;
> >  
> > +		if (lpa & LPA_LPACK) {
> > +			int ret;
> > +
> > +			ret = phy_aneg_done(phydev);
> > +			if (ret)
> > +				return ret;
> > +
> > +			lpa = phy_read(phydev, MII_LPA);
> > +			if (lpa < 0)
> > +				return lpa;
> > +		}
> > +
> 
> Still does not work:
> 
> barebox at Freescale i.MX53 LOCO:/ while [ ${done} != 0 ]; do dhcp;
> done=$?; msleep 500; done
> genphy_read_status MII_LPA 0x0001
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> dhcp failed: Network is down
> dhcp: Network is down
> genphy_read_status MII_LPA 0x45e1
> 100Mbps full duplex link detected
> DHCP client bound to address 192.168.24.118
this is a bug on LAN8720 which may cause this


Make sure the EDPWRDOWN bit is NOT set. Setting this bit on
LAN8710/LAN8720 PHY causes the PHY to misbehave, likely due
to a bug on the chip.

When the system is powered on with the network cable being
disconnected all the way until after ifconfig ethX up is
ssued for the LAN port with this PHY, connecting the cable
afterwards does not cause LINK change detection, while the
expected behavior is the Link UP being detected.

Best Regards,
J. 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list