From e4a3d57dc79e8c94e3272c4a82b146df0fe3dda6 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 27 Oct 2011 06:24:32 +0000 Subject: [PATCH] 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 Acked-by: Mike Frysinger --- include/net.h | 6 ++++++ net/bootp.c | 34 ++-------------------------------- net/net.c | 30 ++++++++++++++++++++++++++++++ net/rarp.c | 18 +----------------- 4 files changed, 39 insertions(+), 49 deletions(-) diff --git a/include/net.h b/include/net.h index b408dea666..ad9afbf417 100644 --- a/include/net.h +++ b/include/net.h @@ -429,6 +429,12 @@ extern int NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, i /* Processes a received packet */ 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 b703f428ca..b789eec0d7 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 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; diff --git a/net/rarp.c b/net/rarp.c index 94c86d3429..097f970f44 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(); } -- 2.25.1