Joe,

On Thu, Jul 18, 2013 at 8:41 AM, Fabio Estevam <feste...@gmail.com> wrote:

> I have tried:
>
> --- a/drivers/net/phy/phy.c
> +++ b/drivers/net/phy/phy.c
> @@ -404,7 +404,7 @@ int genphy_config(struct phy_device *phydev)
>                 if (val & ESTATUS_1000_XFULL)
>                         features |= SUPPORTED_1000baseX_Full;
>                 if (val & ESTATUS_1000_XHALF)
> -                       features |= SUPPORTED_1000baseX_Full;
> +                       features |= SUPPORTED_1000baseX_Half;
>         }
>
>         phydev->supported = features;
>
> ,but it still did not fix the issue.
>
> Charles/Joe,
>
> Any ideas?

Also tested on a mx6qsabresd and ethernet is also broken there as well.

The following patch fixes it:

--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -337,12 +337,8 @@ int genphy_parse_link(struct phy_device *phydev)
                        estatus = phy_read(phydev, MDIO_DEVAD_NONE,
                                           MII_ESTATUS);

-               if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_XHALF |
-                               ESTATUS_1000_TFULL | ESTATUS_1000_THALF)) {
-                       phydev->speed = SPEED_1000;
-                       if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_TFULL))
-                               phydev->duplex = DUPLEX_FULL;
-               }
+               if (estatus & (ESTATUS_1000_XFULL | ESTATUS_1000_TFULL))
+                       phydev->duplex = DUPLEX_FULL;

        } else {
                u32 bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR);

Is this the correct fix?
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to