summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/net.h6
-rw-r--r--net/bootp.c34
-rw-r--r--net/net.c30
-rw-r--r--net/rarp.c18
4 files changed, 39 insertions, 49 deletions
diff --git a/include/net.h b/include/net.h
index b408dea..ad9afbf 100644
--- a/include/net.h
+++ b/include/net.h
@@ -430,6 +430,12 @@ extern int NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, i
extern void NetReceive(volatile uchar *, int);
/*
+ * Check if autoload is enabled. If so, use either NFS or TFTP to download
+ * the boot file.
+ */
+void net_auto_load(void);
+
+/*
* The following functions are a bit ugly, but necessary to deal with
* alignment restrictions on ARM.
*
diff --git a/net/bootp.c b/net/bootp.c
index b703f42..b789eec 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -138,36 +138,6 @@ static int truncate_sz (const char *name, int maxlen, int curlen)
return (curlen);
}
-/*
- * Check if autoload is enabled. If so, use either NFS or TFTP to download
- * the boot file.
- */
-static void auto_load(void)
-{
- const char *s = getenv("autoload");
-
- if (s != NULL) {
- if (*s == 'n') {
- /*
- * Just use BOOTP 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);
-}
-
#if !defined(CONFIG_CMD_DHCP)
static void BootpVendorFieldProcess (u8 * ext)
@@ -354,7 +324,7 @@ BootpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
debug("Got good BOOTP\n");
- auto_load();
+ net_auto_load();
}
#endif
@@ -979,7 +949,7 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
dhcp_state = BOUND;
printf ("DHCP client bound to address %pI4\n", &NetOurIP);
- auto_load();
+ net_auto_load();
return;
}
break;
diff --git a/net/net.c b/net/net.c
index cd34bf9..8f55281 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;
diff --git a/net/rarp.c b/net/rarp.c
index 94c86d3..097f970 100644
--- a/net/rarp.c
+++ b/net/rarp.c
@@ -46,24 +46,8 @@ static void
RarpHandler(uchar *dummi0, unsigned dummi1, IPaddr_t sip, unsigned dummi2,
unsigned dummi3)
{
- char *s;
debug("Got good RARP\n");
- if ((s = getenv("autoload")) != NULL) {
- if (*s == 'n') {
- /*
- * Just use RARP to configure system;
- * Do not use TFTP/NFS to to load the bootfile.
- */
- NetState = NETLOOP_SUCCESS;
- return;
-#if defined(CONFIG_CMD_NFS)
- } else if ((s != NULL) && !strcmp(s, "NFS")) {
- NfsStart();
- return;
-#endif
- }
- }
- TftpStart ();
+ net_auto_load();
}