
On Mon, Apr 15, 2019 at 09:24:00PM +0000, Joe Hershberger wrote:
On Mon, Apr 15, 2019 at 4:11 AM Thierry Reding thierry.reding@gmail.com wrote:
From: Thierry Reding treding@nvidia.com
In order for the device to use the proper MAC address, which can have been configured in the environment prior to the device being registered, ensure that the MAC address is written after the device has been probed. For devices that are registered before the network stack is initialized, this is already done during eth_initialize(). If the Ethernet device is on a bus that is not initialized on early boot, such as PCI, the device is not available at the time eth_initialize() is called, so we need the MAC address programming to also happen after probe.
I would expect to also see a removal of the call in eth_initialize, right? Why do it both places?
I'm hesitant to do that. eth_initialize() happens after eth_post_probe() for devices that are on a fixed bus and there may be code setting up the MAC address that runs between eth_post_probe() and eth_initialize(). If we don't write the MAC address down to hardware in eth_initialize(), we may end up regressing those boards.
Thierry
Signed-off-by: Thierry Reding treding@nvidia.com
net/eth-uclass.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/net/eth-uclass.c b/net/eth-uclass.c index 2ef20df19203..4225aabf1fa1 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -524,6 +524,8 @@ static int eth_post_probe(struct udevice *dev) #endif }
eth_write_hwaddr(dev);
return 0;
}
-- 2.21.0
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot