[U-Boot-Users] [PATCH] net: add 'ethtoggle' environment variable

Matthias Fuchs matthias.fuchs at esd-electronics.com
Wed Jan 9 17:56:48 CET 2008


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 at 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;
-- 
1.5.3





More information about the U-Boot mailing list