summaryrefslogtreecommitdiff
path: root/net/net.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-10-27 06:24:32 +0000
committerWolfgang Denk <wd@denx.de>2011-10-27 23:53:58 +0200
commite4a3d57dc79e8c94e3272c4a82b146df0fe3dda6 (patch)
tree1f56c6b874ec39a786bdd878fb752cf3996015a2 /net/net.c
parented1ada712aa206bfa51caf56f27659baa05623bf (diff)
net: Export auto_load, use it in rarp
The rarp code includes another instance of the auto_load logic, so call what is now net_auto_load() instead. This also fixes an incorrect call to TftpStart() which was never seen since apparently no boards enable rarp. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/net/net.c b/net/net.c
index cd34bf96fd..8f55281f40 100644
--- a/net/net.c
+++ b/net/net.c
@@ -309,6 +309,36 @@ void ArpTimeoutCheck(void)
}
}
+/*
+ * Check if autoload is enabled. If so, use either NFS or TFTP to download
+ * the boot file.
+ */
+void net_auto_load(void)
+{
+ const char *s = getenv("autoload");
+
+ if (s != NULL) {
+ if (*s == 'n') {
+ /*
+ * Just use BOOTP/RARP to configure system;
+ * Do not use TFTP to load the bootfile.
+ */
+ NetState = NETLOOP_SUCCESS;
+ return;
+ }
+#if defined(CONFIG_CMD_NFS)
+ if (strcmp(s, "NFS") == 0) {
+ /*
+ * Use NFS to load the bootfile.
+ */
+ NfsStart();
+ return;
+ }
+#endif
+ }
+ TftpStart(TFTPGET);
+}
+
static void NetInitLoop(enum proto_t protocol)
{
static int env_changed_id;