On Ten64 boards, the "serial number" is the MAC address of the
first Gigabit Ethernet interface (labelled GE0 on the appliance),
and counted up from there.
The previous logic did not take into account U-Boot's ordering
of the network interfaces. By setting aliases/ethernetX in the device
tree we can ensure the U-Boot 'ethX' is the same as the labelled
port order on the unit, as well as the one adopted by Linux.
Signed-off-by: Mathew McBride <matt@traverse.com.au>
/{
aliases {
spi0 = &qspi;
+ ethernet0 = &dpmac7;
+ ethernet1 = &dpmac8;
+ ethernet2 = &dpmac9;
+ ethernet3 = &dpmac10;
+ ethernet4 = &dpmac3;
+ ethernet5 = &dpmac4;
+ ethernet6 = &dpmac5;
+ ethernet7 = &dpmac6;
+ ethernet8 = &dpmac2;
+ ethernet9 = &dpmac1;
};
};
this_dpmac_num = allocation_order[intfidx];
printf("DPMAC%d: %s\n", this_dpmac_num, ethaddr);
snprintf(enetvar, 10,
- (this_dpmac_num != 1) ? "eth%daddr" : "ethaddr",
- this_dpmac_num - 1);
+ (intfidx != 0) ? "eth%daddr" : "ethaddr",
+ intfidx);
macaddr++;
if (!env_get(enetvar))