struct mvgbe_device *dmvgbe;
struct eth_device *dev;
int devnum;
- char *s;
u8 used_ports[MAX_MVGBE_DEVS] = CONFIG_MVGBE_PORTS;
for (devnum = 0; devnum < MAX_MVGBE_DEVS; devnum++) {
/* must be less than NAMESIZE (16) */
sprintf(dev->name, "egiga%d", devnum);
- /* Extract the MAC address from the environment */
switch (devnum) {
case 0:
dmvgbe->regs = (void *)MVGBE0_BASE;
- s = "ethaddr";
break;
#if defined(MVGBE1_BASE)
case 1:
dmvgbe->regs = (void *)MVGBE1_BASE;
- s = "eth1addr";
break;
#endif
default: /* this should never happen */
return -1;
}
- while (!eth_getenv_enetaddr(s, dev->enetaddr)) {
- /* Generate Private MAC addr if not set */
- dev->enetaddr[0] = 0x02;
- dev->enetaddr[1] = 0x50;
- dev->enetaddr[2] = 0x43;
-#if defined (CONFIG_SKIP_LOCAL_MAC_RANDOMIZATION)
- /* Generate fixed lower MAC half using devnum */
- dev->enetaddr[3] = 0;
- dev->enetaddr[4] = 0;
- dev->enetaddr[5] = devnum;
-#else
- /* Generate random lower MAC half */
- dev->enetaddr[3] = get_random_hex();
- dev->enetaddr[4] = get_random_hex();
- dev->enetaddr[5] = get_random_hex();
-#endif
- eth_setenv_enetaddr(s, dev->enetaddr);
- }
-
dev->init = (void *)mvgbe_init;
dev->halt = (void *)mvgbe_halt;
dev->send = (void *)mvgbe_send;