X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=net%2Frarp.c;h=9444c036453a946b7e232f4d3c89140f624f9b7b;hb=8d573fdcc422e80656b03e31662843b45851076b;hp=b8cc542c13a4d82288b39b194402a309f9e3bea6;hpb=c40b29568232761e33400e58be86b15a167d3422;p=u-boot diff --git a/net/rarp.c b/net/rarp.c index b8cc542c13..9444c03645 100644 --- a/net/rarp.c +++ b/net/rarp.c @@ -29,9 +29,7 @@ #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 @@ -48,16 +46,21 @@ static void 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 (); } @@ -73,7 +76,7 @@ RarpTimeout(void) puts ("\nRetry count exceeded; starting again\n"); NetStartAgain (); } else { - NetSetTimeout (TIMEOUT * CFG_HZ, RarpTimeout); + NetSetTimeout (TIMEOUT, RarpTimeout); RarpRequest (); } } @@ -89,8 +92,7 @@ RarpRequest (void) 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; @@ -107,10 +109,8 @@ RarpRequest (void) 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 */