#include "rarp.h"
#include "tftp.h"
-#if (CONFIG_COMMANDS & CFG_CMD_NET)
-
-#define TIMEOUT 5 /* Seconds before trying BOOTP again */
+#define TIMEOUT 5000UL /* Milliseconds before trying BOOTP again */
#ifndef CONFIG_NET_RETRY_COUNT
# define TIMEOUT_COUNT 5 /* # of timeouts before giving up */
#else
RarpHandler(uchar * dummi0, unsigned dummi1, unsigned dummi2, unsigned dummi3)
{
char *s;
-#ifdef DEBUG
- printf("Got good RARP\n");
+ 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
- if (((s = getenv("autoload")) != NULL) && (*s == 'n')) {
- NetState = NETLOOP_SUCCESS;
- return;
- }
- else if ((s != NULL) && !strcmp(s, "NFS")) {
- NfsStart();
- return;
+ }
}
TftpStart ();
}
puts ("\nRetry count exceeded; starting again\n");
NetStartAgain ();
} else {
- NetSetTimeout (TIMEOUT * CFG_HZ, RarpTimeout);
+ NetSetTimeout (TIMEOUT, RarpTimeout);
RarpRequest ();
}
}
printf("RARP broadcast %d\n", ++RarpTry);
pkt = NetTxPacket;
- NetSetEther(pkt, NetBcastAddr, PROT_RARP);
- pkt += ETHER_HDR_SIZE;
+ pkt += NetSetEther(pkt, NetBcastAddr, PROT_RARP);
rarp = (ARP_t *)pkt;
rarp->ar_data[16 + i] = 0xff;
}
- NetSendPacket(NetTxPacket, ETHER_HDR_SIZE + ARP_HDR_SIZE);
+ NetSendPacket(NetTxPacket, (pkt - NetTxPacket) + ARP_HDR_SIZE);
- NetSetTimeout(TIMEOUT * CFG_HZ, RarpTimeout);
+ NetSetTimeout(TIMEOUT, RarpTimeout);
NetSetHandler(RarpHandler);
}
-
-#endif /* CFG_CMD_NET */