
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.
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]);