summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Fuchs <matthias.fuchs@esd-electronics.com>2008-01-17 07:45:05 +0100
committerBen Warren <biggerbadderben@gmail.com>2008-01-17 09:41:09 -0500
commite16925773211291b562e77187061e9dd1d757217 (patch)
tree870b7b268b49b5f223a95a85ee31b1c29fdd848f
parent7f52fa3c2df59e49dc2badd7c084cf2d007c438f (diff)
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>
-rw-r--r--README4
-rw-r--r--net/eth.c9
2 files changed, 13 insertions, 0 deletions
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;