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 <sjg@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
master
Simon Glass 13 years ago committed by Wolfgang Denk
parent ed1ada712a
commit e4a3d57dc7
  1. 6
      include/net.h
  2. 34
      net/bootp.c
  3. 30
      net/net.c
  4. 18
      net/rarp.c

@ -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.
*

@ -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;

@ -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;

@ -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();
}

Loading…
Cancel
Save