diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/bootp.c | 4 | ||||
| -rw-r--r-- | net/eth.c | 16 | 
2 files changed, 16 insertions, 4 deletions
| diff --git a/net/bootp.c b/net/bootp.c index e679f8b7f..1a717867d 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -456,6 +456,10 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  	*e++  = 42;  	*cnt += 1;  #endif +	/* no options, so back up to avoid sending an empty request list */ +	if (*cnt == 0) +		e -= 2; +  	*e++  = 255;		/* End of the list */  	/* Pad to minimal length */ @@ -204,10 +204,18 @@ int eth_initialize(bd_t *bis)  #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)  	miiphy_init();  #endif -	/* Try board-specific initialization first.  If it fails or isn't -	 * present, try the cpu-specific initialization */ -	if (board_eth_init(bis) < 0) -		cpu_eth_init(bis); +	/* +	 * If board-specific initialization exists, call it. +	 * If not, call a CPU-specific one +	 */ +	if (board_eth_init != __def_eth_init) { +		if (board_eth_init(bis) < 0) +			printf("Board Net Initialization Failed\n"); +	} else if (cpu_eth_init != __def_eth_init) { +		if (cpu_eth_init(bis) < 0) +			printf("CPU Net Initialization Failed\n"); +	} else +		printf("Net Initialization Skipped\n");  #if defined(CONFIG_DB64360) || defined(CONFIG_CPCI750)  	mv6436x_eth_initialize(bis); |