GTA04 U-Boot

GTA04 U-Boot Commit Details

Date:2009-08-20 10:13:06 (3 years 9 months ago)
Author:Simon Kagstrom
Branch:gta04
Commit:cad713bf7548b9e90433dac8270165402a6c9cc3
Parents: bb1ca3b27f7fba8c73cb10279a6a8b8b69a308ff
Message: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.kagstrom@netinsight.net>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Changes:
Mdrivers/net/kirkwood_egiga.c (2 diffs)

File differences

drivers/net/kirkwood_egiga.c
400400
401401
402402
403
403404
404405
405406
......
447448
448449
449450
450
451
452
453
454
455
451
452
453
454
455
456
457
458
459
460
456461
462
463
464
457465
458466
459467
{
struct kwgbe_device *dkwgbe = to_dkwgbe(dev);
struct kwgbe_registers *regs = dkwgbe->regs;
int i;
/* setup RX rings */
kwgbe_init_rx_desc_ring(dkwgbe);
#if (defined (CONFIG_MII) || defined (CONFIG_CMD_MII)) \
&& defined (CONFIG_SYS_FAULT_ECHO_LINK_DOWN)
u16 phyadr;
miiphy_read(dev->name, KIRKWOOD_PHY_ADR_REQUEST,
KIRKWOOD_PHY_ADR_REQUEST, &phyadr);
if (!miiphy_link(dev->name, phyadr)) {
printf("%s: No link on %s\n", __FUNCTION__, dev->name);
return -1;
/* Wait up to 5s for the link status */
for (i = 0; i < 5; i++) {
u16 phyadr;
miiphy_read(dev->name, KIRKWOOD_PHY_ADR_REQUEST,
KIRKWOOD_PHY_ADR_REQUEST, &phyadr);
/* Return if we get link up */
if (miiphy_link(dev->name, phyadr))
return 0;
udelay(1000000);
}
printf("No link on %s\n", dev->name);
return -1;
#endif
return 0;
}

Archive Download the corresponding diff file

Branches

Tags