Simon,
Simon Kagstrom wrote: > Wait for the link to come up on kirkwood network init > > This patch makes the device wait for up to 5 seconds for the link to > come up, similar to what many of the other network drivers do. This > avoids confusing situations where, e.g., a tftp fails when initiated > early after U-boot has started (before the link has come up). > > Signed-off-by: Simon Kagstrom <simon.kagst...@netinsight.net> > --- > drivers/net/kirkwood_egiga.c | 17 ++++++++++++----- > 1 files changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c > index f31fefc..9ac9c1f 100644 > --- a/drivers/net/kirkwood_egiga.c > +++ b/drivers/net/kirkwood_egiga.c > @@ -396,6 +396,7 @@ static int kwgbe_init(struct eth_device *dev) > { > struct kwgbe_device *dkwgbe = to_dkwgbe(dev); > struct kwgbe_registers *regs = dkwgbe->regs; > + int i; > > /* setup RX rings */ > kwgbe_init_rx_desc_ring(dkwgbe); > @@ -443,12 +444,18 @@ static int kwgbe_init(struct eth_device *dev) > > #if (defined (CONFIG_MII) || defined (CONFIG_CMD_MII)) \ > && defined (CONFIG_SYS_FAULT_ECHO_LINK_DOWN) > - u16 phyadr; > - miiphy_read(dev->name, 0xEE, 0xEE, &phyadr); > - if (!miiphy_link(dev->name, phyadr)) { > - printf("%s: No link on %s\n", __FUNCTION__, dev->name); > Please use __func__ instead. It's defined in C99, while __FUNCTION__ isn't (or so I've read) > - return -1; > + /* Wait up to 5s for the link status */ > + for (i = 0; i < 5; i++) { > + u16 phyadr; > Please put this variable declaration outside of the 'for' loop > + miiphy_read(dev->name, 0xEE, 0xEE, &phyadr); > What does '0xEE' mean? I know you didn't write it, but magic numbers are bad. > + /* Return if we get link up */ > + if (miiphy_link(dev->name, phyadr)) > > + return 0; > + udelay(1000000); > } > + > + printf("%s: No link on %s\n", __FUNCTION__, dev->name); > + return -1; > #endif > return 0; > } > regards, Ben _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot