|
|
|
@ -60,6 +60,8 @@ char net_nis_domain[32] = {0,}; /* Our NIS domain */ |
|
|
|
|
char net_hostname[32] = {0,}; /* Our hostname */ |
|
|
|
|
char net_root_path[64] = {0,}; /* Our bootpath */ |
|
|
|
|
|
|
|
|
|
static ulong time_taken_max; |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_CMD_DHCP) |
|
|
|
|
static dhcp_state_t dhcp_state = INIT; |
|
|
|
|
static u32 dhcp_leasetime; |
|
|
|
@ -380,7 +382,7 @@ static void bootp_timeout_handler(void) |
|
|
|
|
{ |
|
|
|
|
ulong time_taken = get_timer(bootp_start); |
|
|
|
|
|
|
|
|
|
if (time_taken >= TIMEOUT_MS) { |
|
|
|
|
if (time_taken >= time_taken_max) { |
|
|
|
|
#ifdef CONFIG_BOOTP_MAY_FAIL |
|
|
|
|
puts("\nRetry time exceeded\n"); |
|
|
|
|
net_set_state(NETLOOP_FAIL); |
|
|
|
@ -675,12 +677,19 @@ void bootp_request(void) |
|
|
|
|
u32 bootp_id; |
|
|
|
|
struct in_addr zero_ip; |
|
|
|
|
struct in_addr bcast_ip; |
|
|
|
|
char *ep; /* Environment pointer */ |
|
|
|
|
|
|
|
|
|
bootstage_mark_name(BOOTSTAGE_ID_BOOTP_START, "bootp_start"); |
|
|
|
|
#if defined(CONFIG_CMD_DHCP) |
|
|
|
|
dhcp_state = INIT; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
ep = getenv("bootpretryperiod"); |
|
|
|
|
if (ep != NULL) |
|
|
|
|
time_taken_max = simple_strtoul(ep, NULL, 10); |
|
|
|
|
else |
|
|
|
|
time_taken_max = TIMEOUT_MS; |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_BOOTP_RANDOM_DELAY /* Random BOOTP delay */ |
|
|
|
|
if (bootp_try == 0) |
|
|
|
|
srand_mac(); |
|
|
|
|