mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-18 06:58:54 +00:00
Put common autoload code into auto_load() function
This is a small clean-up patch. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Eric Bénard <eric@eukrea.com>
This commit is contained in:
parent
4fdbcf8113
commit
093498669e
1 changed files with 33 additions and 43 deletions
76
net/bootp.c
76
net/bootp.c
|
@ -138,6 +138,36 @@ static int truncate_sz (const char *name, int maxlen, int curlen)
|
||||||
return (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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if !defined(CONFIG_CMD_DHCP)
|
#if !defined(CONFIG_CMD_DHCP)
|
||||||
|
|
||||||
static void BootpVendorFieldProcess (u8 * ext)
|
static void BootpVendorFieldProcess (u8 * ext)
|
||||||
|
@ -289,6 +319,7 @@ static void BootpVendorProcess (u8 * ext, int size)
|
||||||
debug("NetNtpServerIP : %pI4\n", &NetNtpServerIP);
|
debug("NetNtpServerIP : %pI4\n", &NetNtpServerIP);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle a BOOTP received packet.
|
* Handle a BOOTP received packet.
|
||||||
*/
|
*/
|
||||||
|
@ -297,7 +328,6 @@ BootpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
|
||||||
unsigned len)
|
unsigned len)
|
||||||
{
|
{
|
||||||
Bootp_t *bp;
|
Bootp_t *bp;
|
||||||
char *s;
|
|
||||||
|
|
||||||
debug("got BOOTP packet (src=%d, dst=%d, len=%d want_len=%zu)\n",
|
debug("got BOOTP packet (src=%d, dst=%d, len=%d want_len=%zu)\n",
|
||||||
src, dest, len, sizeof (Bootp_t));
|
src, dest, len, sizeof (Bootp_t));
|
||||||
|
@ -324,26 +354,7 @@ BootpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
|
||||||
|
|
||||||
debug("Got good BOOTP\n");
|
debug("Got good BOOTP\n");
|
||||||
|
|
||||||
if ((s = getenv("autoload")) != NULL) {
|
auto_load();
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -922,34 +933,13 @@ DhcpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
|
||||||
debug("DHCP State: REQUESTING\n");
|
debug("DHCP State: REQUESTING\n");
|
||||||
|
|
||||||
if ( DhcpMessageType((u8 *)bp->bp_vend) == DHCP_ACK ) {
|
if ( DhcpMessageType((u8 *)bp->bp_vend) == DHCP_ACK ) {
|
||||||
char *s;
|
|
||||||
|
|
||||||
if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))
|
if (NetReadLong((ulong*)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))
|
||||||
DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
|
DhcpOptionsProcess((u8 *)&bp->bp_vend[4], bp);
|
||||||
BootpCopyNetParams(bp); /* Store net params from reply */
|
BootpCopyNetParams(bp); /* Store net params from reply */
|
||||||
dhcp_state = BOUND;
|
dhcp_state = BOUND;
|
||||||
printf ("DHCP client bound to address %pI4\n", &NetOurIP);
|
printf ("DHCP client bound to address %pI4\n", &NetOurIP);
|
||||||
|
|
||||||
/* Obey the 'autoload' setting */
|
auto_load();
|
||||||
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();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Reference in a new issue