
This patch replaces the buildtime configuration option CONFIG_NET_DO_NOT_TRY_ANOTHER through the 'ethtoggle' runtime configuration veriable. See README.
Signed-off-by: Matthias Fuchs matthias.fuchs@esd-electronics.com --- README | 4 ++++ net/net.c | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/README b/README index 9a8b3b9..9eac840 100644 --- a/README +++ b/README @@ -2687,6 +2687,10 @@ Some configuration options can be set using Environment Variables: => setenv ethact SCC ETHERNET => ping 10.0.0.1 # traffic sent on SCC ETHERNET
+ ethtoggle - When set to "no" U-Boot does not go through all + available network interfaces. + It just stays at the default interface. + netretry - When set to "no" each network operation will either succeed or fail without retrying. When set to "once" the network operation will diff --git a/net/net.c b/net/net.c index 44feee2..48ccd96 100644 --- a/net/net.c +++ b/net/net.c @@ -581,6 +581,7 @@ void NetStartAgain (void) { char *nretry; int noretry = 0, once = 0; + char *ethtoggle;
if ((nretry = getenv ("netretry")) != NULL) { noretry = (strcmp (nretry, "no") == 0); @@ -596,9 +597,15 @@ void NetStartAgain (void) NetSetHandler (startAgainHandler); #else /* !CONFIG_NET_MULTI*/ eth_halt (); -#if !defined(CONFIG_NET_DO_NOT_TRY_ANOTHER) - eth_try_another (!NetRestarted); -#endif + + /* + * Do not toggle between network interfaces when + * 'ethtoggle' variable is set to 'no'. + */ + if (((ethtoggle = getenv ("ethtoggle")) == NULL) || + (strcmp(ethtoggle, "no") != 0)) + eth_try_another (!NetRestarted); + eth_init (gd->bd); if (NetRestartWrap) { NetRestartWrap = 0;