RTL8211B sets link state register after autonegotiation complete,
so with bootdelay=0 RTL8211B will report lack of the link.

To fix this, we should wait for aneg to complete, even if the
link is currently down.

Signed-off-by: Anton Vorontsov <[EMAIL PROTECTED]>
---
 drivers/net/tsec.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index e91d9ea..431a8d2 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -583,10 +583,11 @@ uint mii_parse_RTL8211B_sr(uint mii_reg, struct 
tsec_private * priv)
        uint speed;
 
        mii_reg = read_phy_reg(priv, MIIM_RTL8211B_PHY_STATUS);
-       if ((mii_reg & MIIM_RTL8211B_PHYSTAT_LINK) &&
-               !(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) {
+       if (!(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) {
                int i = 0;
 
+               /* in case of timeout ->link is cleared */
+               priv->link = 1;
                puts("Waiting for PHY realtime link");
                while (!(mii_reg & MIIM_RTL8211B_PHYSTAT_SPDDONE)) {
                        /* Timeout reached ? */
-- 
1.5.2.2

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to