[U-Boot] [PATCH v3 4/4] Put common autoload code into auto_load() function

This is a small clean-up patch.
TEST=Build U-Boot, try bootp and check it auto-loads.
Signed-off-by: Simon Glass sjg@chromium.org --- net/bootp.c | 76 +++++++++++++++++++++++++--------------------------------- 1 files changed, 33 insertions(+), 43 deletions(-)
diff --git a/net/bootp.c b/net/bootp.c index 1a71786..a3d0e63 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -137,6 +137,36 @@ 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) +{ + 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) + } else if (strcmp(s, "NFS") == 0) { + /* + * Use NFS to load the bootfile. + */ + NfsStart(); + return; +#endif + } + } + + TftpStart(); +} + #if !defined(CONFIG_CMD_DHCP)
static void BootpVendorFieldProcess (u8 * ext) @@ -278,6 +308,7 @@ static void BootpVendorProcess (u8 * ext, int size) if (NetBootFileSize) debug("NetBootFileSize: %d\n", NetBootFileSize); } + /* * Handle a BOOTP received packet. */ @@ -285,7 +316,6 @@ static void BootpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len) { Bootp_t *bp; - char *s;
debug("got BOOTP packet (src=%d, dst=%d, len=%d want_len=%zu)\n", src, dest, len, sizeof (Bootp_t)); @@ -312,26 +342,7 @@ BootpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)
debug("Got good BOOTP\n");
- if ((s = getenv("autoload")) != 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) - } else if (strcmp(s, "NFS") == 0) { - /* - * Use NFS to load the bootfile. - */ - NfsStart(); - return; -#endif - } - } - - TftpStart(); + auto_load(); } #endif
@@ -904,34 +915,13 @@ DhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len) debug("DHCP State: REQUESTING\n");
if ( DhcpMessageType((u8 *)bp->bp_vend) == DHCP_ACK ) { - char *s; - if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC)) DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp); BootpCopyNetParams(bp); /* Store net params from reply */ dhcp_state = BOUND; printf ("DHCP client bound to address %pI4\n", &NetOurIP);
- /* Obey the 'autoload' setting */ - if ((s = getenv("autoload")) != 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) - } else if (strcmp(s, "NFS") == 0) { - /* - * Use NFS to load the bootfile. - */ - NfsStart(); - return; -#endif - } - } - TftpStart(); + auto_load(); return; } break;
participants (1)
-
Simon Glass