net: Export auto_load, use it in rarp
authorSimon Glass <sjg@chromium.org>
Thu, 27 Oct 2011 06:24:32 +0000 (06:24 +0000)
committerWolfgang Denk <wd@denx.de>
Thu, 27 Oct 2011 21:53:58 +0000 (23:53 +0200)
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>
include/net.h
net/bootp.c
net/net.c
net/rarp.c

index b408dea..ad9afbf 100644 (file)
@@ -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.
  *
index b703f42..b789eec 100644 (file)
@@ -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;
index cd34bf9..8f55281 100644 (file)
--- 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;
index 94c86d3..097f970 100644 (file)
@@ -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();
 }