diff options
Diffstat (limited to 'drivers/net/dm9000x.c')
| -rw-r--r-- | drivers/net/dm9000x.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/drivers/net/dm9000x.c b/drivers/net/dm9000x.c index f7170e055..b68d808c7 100644 --- a/drivers/net/dm9000x.c +++ b/drivers/net/dm9000x.c @@ -342,6 +342,15 @@ static int dm9000_init(struct eth_device *dev, bd_t *bd)  	DM9000_iow(DM9000_ISR, ISR_ROOS | ISR_ROS | ISR_PTS | ISR_PRS);  	printf("MAC: %pM\n", dev->enetaddr); +	if (!is_valid_ether_addr(dev->enetaddr)) { +#ifdef CONFIG_RANDOM_MACADDR +		printf("Bad MAC address (uninitialized EEPROM?), randomizing\n"); +		eth_random_enetaddr(dev->enetaddr); +		printf("MAC: %pM\n", dev->enetaddr); +#else +		printf("WARNING: Bad MAC address (uninitialized EEPROM?)\n"); +#endif +	}  	/* fill device MAC address registers */  	for (i = 0, oft = DM9000_PAR; i < 6; i++, oft++) |