From: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date: Thu, 17 Jan 2008 06:45:05 +0000 (+0100)
Subject: net: add 'ethrotate' environment variable
X-Git-Tag: v2025.01-rc5-pxa1908~22592^2
X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=e16925773211291b562e77187061e9dd1d757217;p=u-boot.git

net: add 'ethrotate' environment variable

[PATCH] net: add 'ethrotate' environment variable

This patch replaces the buildtime configuration option
CONFIG_NET_DO_NOT_TRY_ANOTHER through the 'ethrotate' runtime
configuration veriable. See README.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
---

diff --git a/README b/README
index f2a4914923..d9c2ee2ed8 100644
--- a/README
+++ b/README
@@ -2691,6 +2691,10 @@ Some configuration options can be set using Environment Variables:
 		  => setenv ethact SCC ETHERNET
 		  => ping 10.0.0.1 # traffic sent on SCC ETHERNET
 
+  ethrotate	- When set to "no" U-Boot does not go through all
+		  available network interfaces.
+		  It just stays at the currently selected 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/eth.c b/net/eth.c
index 63a4cb652a..316e817786 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -525,6 +525,15 @@ int eth_receive(volatile void *packet, int length)
 void eth_try_another(int first_restart)
 {
 	static struct eth_device *first_failed = NULL;
+	char *ethrotate;
+
+	/*
+	 * Do not rotate between network interfaces when
+	 * 'ethrotate' variable is set to 'no'.
+	 */
+	if (((ethrotate = getenv ("ethrotate")) != NULL) &&
+	    (strcmp(ethrotate, "no") == 0))
+		return;
 
 	if (!eth_current)
 		return;