- if (node >= 0) {
-#if defined(CONFIG_HAS_ETH0)
- path = fdt_getprop(fdt, node, "ethernet0", NULL);
- if (path) {
- do_fixup_by_path(fdt, path, "mac-address",
- bd->bi_enetaddr, 6, 0);
- do_fixup_by_path(fdt, path, "local-mac-address",
- bd->bi_enetaddr, 6, 1);
- }
-#endif
-#if defined(CONFIG_HAS_ETH1)
- path = fdt_getprop(fdt, node, "ethernet1", NULL);
- if (path) {
- do_fixup_by_path(fdt, path, "mac-address",
- bd->bi_enet1addr, 6, 0);
- do_fixup_by_path(fdt, path, "local-mac-address",
- bd->bi_enet1addr, 6, 1);
- }
-#endif
-#if defined(CONFIG_HAS_ETH2)
- path = fdt_getprop(fdt, node, "ethernet2", NULL);
- if (path) {
- do_fixup_by_path(fdt, path, "mac-address",
- bd->bi_enet2addr, 6, 0);
- do_fixup_by_path(fdt, path, "local-mac-address",
- bd->bi_enet2addr, 6, 1);
+ if (node < 0)
+ return;
+
+ i = 0;
+ while ((tmp = getenv(mac)) != NULL) {
+ sprintf(enet, "ethernet%d", i);
+ path = fdt_getprop(fdt, node, enet, NULL);
+ if (!path) {
+ debug("No alias for %s\n", enet);
+ sprintf(mac, "eth%daddr", ++i);
+ continue;