
Am 2021-02-16 23:53, schrieb Vladimir Oltean:
On Tue, Feb 16, 2021 at 11:25:25PM +0100, Michael Walle wrote:
- aliases {
eth0 = &mscc_felix_port0;
eth1 = &mscc_felix_port1;
eth2 = &enetc2;
[..]
But the address cannot be inherited unless the master has already been probed. So it must be probed first, so it needs to have a lower numbered alias.
Are you sure, probing will depend on the aliases? eth_initialize() will call uclass_first_device_check() which in turn returns the first device in the linked list. I don't exactly know how they will end up in that list, but I don't think it is by the alias.
=> dm uclass [..] uclass 34: eth 0 * enetc-2 @ ffd3e020, seq 2 1 * gbe0 @ ffd3e4d0, seq 0 2 * gbe1 @ ffd3e5d0, seq 1
It will also work on my board even if ethaddr is unset, enetc-2 is probed before the DSA ports, but if I understand you correctly, that is just by chance; as it is on the RDB I guess then.
Anyway, if the DSA needs the parent ethernet device, shouldn't it then be probed automatically?
-michael