
On Sun, 2016-06-26 at 13:54 +0200, Hans de Goede wrote:
Currently we will already fill ethaddr with a fixed unique address based on the SoCs serial (from the sid) to make sure that boards which use the integrated emac / gmac get a fixed mac rather then a random one.
On some boards (observed on 2 tablets using sdio rtl8703as wifi chips) the wifi does not come with a fixed mac either, so also set eth1addr, so that dts files can set an ethernet1 alias to get mac-address and local-mac-address filled for dt nodes describing the wifi controller.
This does it unconditionally, won't having eth1addr show up for boards which only have one network device (WIFI or otherwise) be potentially confusing for users? i.e. lacking it would be a sign that the online guide you are following might not exactly be relevant to your board, or people seeing it and then wasting time trying to figure out how to use the second device. Of secondary concern (since I think it is far less liklely) would be confusing some software somewhere.
Also what is the impact on boards which have a second network device which does have a proper MAC address, either one which is part of the board or e.g. on a USB dongle? I think we don't want to override any burnt in MAC addresses.
Ian.
Signed-off-by: Hans de Goede hdegoede@redhat.com
board/sunxi/board.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/board/sunxi/board.c b/board/sunxi/board.c index b5a50f4..41d796c 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -641,6 +641,18 @@ int misc_init_r(void) eth_setenv_enetaddr("ethaddr", mac_addr); }
if (!getenv("eth1addr")) {
/* Non OUI / registered MAC address */
mac_addr[0] = 0x12;
mac_addr[1] = (sid[0] >> 0) & 0xff;
mac_addr[2] = (sid[3] >> 24) & 0xff;
mac_addr[3] = (sid[3] >> 16) & 0xff;
mac_addr[4] = (sid[3] >> 8) & 0xff;
mac_addr[5] = (sid[3] >> 0) & 0xff;
eth_setenv_enetaddr("eth1addr", mac_addr);
}
if (!getenv("serial#")) { snprintf(serial_string, sizeof(serial_string), "%08x%08x", sid[0], sid[3]);