When eth_init updates dev->enetaddr it does not call dev->write_hwaddr. Fix that so when ethaddr is set after eth_initialize the change will propagate to the hw.
Signed-off-by: John Rigby <john.ri...@linaro.org> --- net/eth.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/net/eth.c b/net/eth.c index 993306f..5216c2b 100644 --- a/net/eth.c +++ b/net/eth.c @@ -341,8 +341,14 @@ int eth_init(bd_t *bis) do { uchar env_enetaddr[6]; - if (eth_getenv_enetaddr_by_index(eth_number, env_enetaddr)) + if (eth_getenv_enetaddr_by_index(eth_number, env_enetaddr)) { memcpy(dev->enetaddr, env_enetaddr, 6); + if (dev->write_hwaddr && + !eth_mac_skip(eth_number) && + is_valid_ether_addr(dev->enetaddr)) { + dev->write_hwaddr(dev); + } + } ++eth_number; dev = dev->next; -- 1.7.0.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot