net: dm9000: random mac address support
When an unprogrammed EEPROM is attached to a dm9000, the dm9000 will come up with a invalid MAC address of ff:ff:ff:ff:ff:ff. Add code that gets enabled if CONFIG_RANDOM_MACADDR is enabled that generates a random (and valid) locally administered MAC address that allows the system to network boot until a real MAC address can be configured. Signed-off-by: Andrew Ruder <andrew.ruder@elecsyscorp.com>
This commit is contained in:
parent
8712adfd05
commit
c583ee16cb
@ -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++)
|
||||
|
Loading…
Reference in New Issue
Block a user