
Hi,
On 15-11-16 04:25, Joe Hershberger wrote:
On Tue, Nov 8, 2016 at 9:54 AM, Olliver Schinagl oliver@schinagl.nl wrote:
Currently we inject 5 ethernet addresses into the environment, just in case we may need them. We do this because some boards have no eeprom (programmed) with a proper ethernet address. With the recent addition of reading actual ethernet addresses from the eeprom via the net_op we should not inject environment variables any more.
Signed-off-by: Olliver Schinagl oliver@schinagl.nl
Acked-by: Joe Hershberger joe.hershberger@ni.com
Erm, this patch seems wrong to me: NACK, let me explain:
1) It does not do what its commit message says, it only removes the second step for setting ethernet addresses from the env, but it keeps the existing code to set them AFAICT, it only does it once now.
2) "Currently we inject 5 ethernet addresses into the environment", this is not true, we only inject ethernet addresses into the environment for devices which have an ethernet alias in dt, so maximum 2 for devices with both wired ethernet and wifi
3) The second attempt at setting ethernet addresses in the environment after loading the kernel dt is necessary because the kernel dt may be newer and contain more ethernet aliases, e.g. the u-boot dt may only contain the nodes + alias for the wired, while the (newer) kernel dt may also contain a dt-node + alias for the wireless
4) We cannot solely rely on the ethernet driver to set mac-addresses, because the ethernet driver may not be enabled while the kernel does have the ethernet driver enabled; and the kernel relies on u-boot to generate fixed mac-addresses based on the SID independent whether or not u-boot has ethernet enabled, this is especially relevant for wifi chips where the kernel also relies on u-boot generated fixed mac-addresses on e.g. the recent orange-pi boards, which come with a realtek rtl8189etv chip which does not have a mac address programmed.
5) AFAIK the dt code for passing mac-addresses to the kernel relies on the environment variables, so even if we get the mac-address from a ROM we should still store it in the environment variable.
Regards,
Hans