[U-Boot] net, phy: wrong 1000BASE detection with a lan9303 switch

Heiko Schocher hs at denx.de
Wed Jul 10 13:33:18 CEST 2013


Hello Wolfgang,

Am 10.07.2013 13:15, schrieb Wolfgang Denk:
> Dear Heiko,
>
> In message<51DD3D92.8050701 at denx.de>  you wrote:
>>
>> Would this be an acceptable patch for it:
> ...
>> @@ -300,6 +300,10 @@ int genphy_parse_link(struct phy_device *phydev)
>>                            * both PHYs in the link
>>                            */
>>                           gblpa = phy_read(phydev, MDIO_DEVAD_NONE, MII_STAT1000);
>> +                       if (gblpa<  0) {
>> +                               printf ("Could not read MII_STAT1000. Ignoring gigabit capability\n");
>> +                               gblpa = 0;
>> +                       }
>>                           gblpa&= phy_read(phydev,
>>                                           MDIO_DEVAD_NONE, MII_CTRL1000)<<  2;
>
> Well, this other phy_read() probably needs exactly the same error
> handling - and I doubt if we should actually try riding the reg when
> the first one failed already?

Yes, you are right. The first question is, if such a patch is the
right way for fixing it, or if there is a better way ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list