[PATCH v2] drivers: net: fsl_enetc: Pass on primary MAC address to Linux
Michael Walle
michael at walle.cc
Wed Dec 11 14:16:45 CET 2019
Hi Vladimir,
Am 2019-12-11 13:46, schrieb Vladimir Oltean:
> Hi Michael,
>
> On Wed, 11 Dec 2019 at 00:48, Michael Walle <michael at walle.cc> wrote:
>>
>> Am 2019-12-10 15:55, schrieb Alex Marginean:
>> > Passes on the primary address used by u-boot to Linux. The code does a
>> > DT
>> > fix-up for ENETC PFs and sets the primary MAC address in IERB. The
>> > address
>> > in IERB is restored on ENETC PCI functions at FLR.
>>
>>
>> I don't get the reason why this is done in a proprietary way. What is
>> the
>> difference between any other network interface whose hardware address
>> is
>> set up in the generic u-boot code.
>>
>> Also, shouldn't write_hwaddr callback be implemented instead of the
>> enetc_set_ierb_primary_mac()?
>>
>
> At the moment, the Linux driver ignored the device tree and only reads
> the POR values of the SIPMAR registers. The reset value of those comes
> from the IERB space, which U-Boot is configuring. So it would be good
> if that behavior keeps working.
>
> It would also be good if the Linux driver called of_get_mac_address,
> so it needs the device tree binding for that. That's why both fixups
> are performed, and why the generic function is not used.
yes, but u-boot already sets the mac-address/local-mac-address property
in the device tree already in a generic way, see fdt_fixup_ethernet().
> As for the write_hwaddr callback instead of
> enetc_set_primary_mac_addr, that is valid but I suppose it is outside
> the scope of this patch. That function is related to the runtime MAC
> address and not to the MAC passed to Linux.
according to the comment in eth-uclass.c this is not for (u-boot)
runtime:
/*
* Devices need to write the hwaddr even if not started so that Linux
* will have access to the hwaddr that u-boot stored for the device.
* This is accomplished by attempting to probe each device and calling
* their write_hwaddr() operation.
*/
and the runtime mac address for u-boot is already set enetc_start().
-michael
More information about the U-Boot
mailing list