[PATCH 1/3] net: give a different name to rtl8169 interfaces
Dragan Simic
dsimic at manjaro.org
Tue Jun 25 12:25:05 CEST 2024
Hello,
On 2024-06-25 12:03, Quentin Schulz wrote:
> On 6/25/24 8:38 AM, Etienne Dublé wrote:
>> Thanks for reviewing my patches.
>>
>> Le 24/06/2024 à 15:08, Quentin Schulz a écrit :
>>> [...]
>>>
>>>> 1 file changed, 11 insertions(+)
>>>>
>>>> diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c
>>>> index 93e83661ce..b30d51731f 100644
>>>> --- a/drivers/net/rtl8169.c
>>>> +++ b/drivers/net/rtl8169.c
>>>> @@ -1091,6 +1091,16 @@ static int rtl8169_eth_probe(struct udevice
>>>> *dev)
>>>> return 0;
>>>> }
>>>> +static int rtl8169_eth_bind(struct udevice *dev)
>>>> +{
>>>> + static int card_number;
>>>> + char name[16];
>>>> +
>>>> + sprintf(name, "RTL8169#%u", card_number++);
>>>> +
>>>> + return device_set_name(dev, name);
>>>> +}
>>>> +
>>>
>>> I don't think we can guarantee bind order so this may not be stable
>>> over time.
>>>
>>> I'm wondering if there isn't a way to use the "ethernet" (ethernet0,
>>> ethernet1) alias in DT instead?
>>
>> Actually the ethernet interfaces are not declared in the device tree,
>> only PCI buses are (at least on this Nanopi board).
>> The ethernet interfaces are only detected when running "pci enum".
>>
>
> Ah shoot.
>
>> Another option may be to name them "rtl8169@<hexa>", with "<hexa>"
>> reflecting the PCI region address (so it is unique and stable). What
>> do you think?
>>
>
> I guess that's one way, I'm also wondering how systemd renames those
> to be unique but stable on the same machine, maybe we could take some
> inspiration from them for that?
Systemd also allows renaming of network interfaces using some rules
predefined by the user, so there's also the possibility to rename the
interfaces in U-Boot to ethernet0 and ethernet1, using fixed rules
that would be based on the PCI region address.
> FYI, for NVMEs I also have
> /dev/disk/by-path/platform-fe190000.pcie-pci-0004:41:00.0-nvme-1 for
> example. platform-fe19000.pcie- being the pcie controller at address
> fe19000 on the platform root bus, no clue about what's after that
> though. I also assume the N in nvme-N isn't necessarily stable over
> time but whatever's before should be? Maybe there's something like
> ports/addresses on the PCIe bus that will never change or rely on
> probe order/timings to keep a stable naming?
> Sorry, don't know much about PCIe so cannot suggest anything meaningful
> :/
More information about the U-Boot
mailing list