X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=net%2Feth.c;h=ff55e737eec02ac767f46c76e27c80145d0f45ca;hb=e77395268de3b8dca2d93ffdf70b9436c8c64d81;hp=f06fdb27439ce2903ca9fb4f25c74b7d9aea7d69;hpb=c4baf1ac6604cb90b84bfb764f7dd484bca6d28e;p=karo-tx-uboot.git diff --git a/net/eth.c b/net/eth.c index f06fdb2743..ff55e737ee 100644 --- a/net/eth.c +++ b/net/eth.c @@ -32,7 +32,7 @@ void eth_parse_enetaddr(const char *addr, uchar *enetaddr) int eth_getenv_enetaddr(char *name, uchar *enetaddr) { eth_parse_enetaddr(getenv(name), enetaddr); - return is_valid_ether_addr(enetaddr); + return is_valid_ethaddr(enetaddr); } int eth_setenv_enetaddr(char *name, const uchar *enetaddr) @@ -74,8 +74,10 @@ static int eth_mac_skip(int index) { char enetvar[15]; char *skip_state; + sprintf(enetvar, index ? "eth%dmacskip" : "ethmacskip", index); - return ((skip_state = getenv(enetvar)) != NULL); + skip_state = getenv(enetvar); + return skip_state != NULL; } static void eth_current_changed(void); @@ -275,8 +277,9 @@ int eth_init(void) priv->state = ETH_STATE_ACTIVE; return 0; } - } else + } else { ret = eth_errno; + } debug("FAIL\n"); @@ -369,7 +372,7 @@ static int eth_write_hwaddr(struct udevice *dev) /* seq is valid since the device is active */ if (eth_get_ops(dev)->write_hwaddr && !eth_mac_skip(dev->seq)) { - if (!is_valid_ether_addr(pdata->enetaddr)) { + if (!is_valid_ethaddr(pdata->enetaddr)) { printf("\nError: %s address %pM illegal value\n", dev->name, pdata->enetaddr); return -EINVAL; @@ -470,8 +473,8 @@ static int eth_post_probe(struct udevice *dev) eth_get_ops(dev)->read_rom_hwaddr(dev); eth_getenv_enetaddr_by_index("eth", dev->seq, env_enetaddr); - if (!is_zero_ether_addr(env_enetaddr)) { - if (!is_zero_ether_addr(pdata->enetaddr) && + if (!is_zero_ethaddr(env_enetaddr)) { + if (!is_zero_ethaddr(pdata->enetaddr) && memcmp(pdata->enetaddr, env_enetaddr, 6)) { printf("\nWarning: %s MAC addresses don't match:\n", dev->name); @@ -483,11 +486,11 @@ static int eth_post_probe(struct udevice *dev) /* Override the ROM MAC address */ memcpy(pdata->enetaddr, env_enetaddr, 6); - } else if (is_valid_ether_addr(pdata->enetaddr)) { + } else if (is_valid_ethaddr(pdata->enetaddr)) { eth_setenv_enetaddr_by_index("eth", dev->seq, pdata->enetaddr); printf("\nWarning: %s using MAC address from ROM\n", dev->name); - } else if (is_zero_ether_addr(pdata->enetaddr)) { + } else if (is_zero_ethaddr(pdata->enetaddr)) { printf("\nError: %s address not set.\n", dev->name); return -EINVAL; @@ -608,39 +611,40 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name, eth_getenv_enetaddr_by_index(base_name, eth_number, env_enetaddr); - if (!is_zero_ether_addr(env_enetaddr)) { - if (!is_zero_ether_addr(dev->enetaddr) && + if (!is_zero_ethaddr(env_enetaddr)) { + if (!is_zero_ethaddr(dev->enetaddr) && memcmp(dev->enetaddr, env_enetaddr, 6)) { printf("\nWarning: %s MAC addresses don't match:\n", - dev->name); + dev->name); printf("Address in SROM is %pM\n", - dev->enetaddr); + dev->enetaddr); printf("Address in environment is %pM\n", - env_enetaddr); + env_enetaddr); } memcpy(dev->enetaddr, env_enetaddr, 6); - } else if (is_valid_ether_addr(dev->enetaddr)) { + } else if (is_valid_ethaddr(dev->enetaddr)) { eth_setenv_enetaddr_by_index(base_name, eth_number, dev->enetaddr); printf("\nWarning: %s using MAC address from net device\n", - dev->name); - } else if (is_zero_ether_addr(dev->enetaddr)) { + dev->name); + } else if (is_zero_ethaddr(dev->enetaddr)) { printf("\nError: %s address not set.\n", dev->name); return -EINVAL; } if (dev->write_hwaddr && !eth_mac_skip(eth_number)) { - if (!is_valid_ether_addr(dev->enetaddr)) { + if (!is_valid_ethaddr(dev->enetaddr)) { printf("\nError: %s address %pM illegal value\n", - dev->name, dev->enetaddr); + dev->name, dev->enetaddr); return -EINVAL; } ret = dev->write_hwaddr(dev); if (ret) - printf("\nWarning: %s failed to set MAC address\n", dev->name); + printf("\nWarning: %s failed to set MAC address\n", + dev->name); } return ret; @@ -654,7 +658,8 @@ int eth_register(struct eth_device *dev) assert(strlen(dev->name) < sizeof(dev->name)); if (!eth_devices) { - eth_current = eth_devices = dev; + eth_devices = dev; + eth_current = dev; eth_current_changed(); } else { for (d = eth_devices; d->next != eth_devices; d = d->next) @@ -725,8 +730,9 @@ int eth_initialize(void) } else if (cpu_eth_init != __def_eth_init) { if (cpu_eth_init(gd->bd) < 0) printf("CPU Net Initialization Failed\n"); - } else + } else { printf("Net Initialization Skipped\n"); + } if (!eth_devices) { puts("No ethernet found.\n"); @@ -959,7 +965,7 @@ void eth_try_another(int first_restart) eth_current_changed(); if (first_failed == eth_get_dev()) - NetRestartWrap = 1; + net_restart_wrap = 1; } void eth_set_current(void)