[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