mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ivan Vecera <ivecera@redhat.com>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: netdev@vger.kernel.org,
	Vadim Fedorenko <vadim.fedorenko@linux.dev>,
	Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
	Jiri Pirko <jiri@resnulli.us>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Prathosh Satish <Prathosh.Satish@microchip.com>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Michal Schmidt <mschmidt@redhat.com>,
	Petr Oros <poros@redhat.com>
Subject: Re: [PATCH net-next 1/2] dt-bindings: dpll: Add clock ID property
Date: Mon, 21 Jul 2025 14:54:04 +0200	[thread overview]
Message-ID: <804b4a5f-06bc-4943-8801-2582463c28ef@redhat.com> (raw)
In-Reply-To: <20250721-lean-strong-sponge-7ab0be@kuoka>

On 21. 07. 25 11:23 dop., Krzysztof Kozlowski wrote:
> On Fri, Jul 18, 2025 at 02:16:41PM +0200, Ivan Vecera wrote:
>> Hi Krzysztof,
>>
>> ...
>>
>> The clock-id property name may have been poorly chosen. This ID is used by
>> the DPLL subsystem during the registration of a DPLL channel, along with its
>> channel ID. A driver that provides DPLL functionality can compute this
>> clock-id from any unique chip information, such as a serial number.
>>
>> Currently, other drivers that implement DPLL functionality are network
>> drivers, and they generate the clock-id from one of their MAC addresses by
>> extending it to an EUI-64.
>>
>> A standalone DPLL device, like the zl3073x, could use a unique property such
>> as its serial number, but the zl3073x does not have one. This patch-set is
>> motivated by the need to support such devices by allowing the DPLL device ID
>> to be passed via the Device Tree (DT), which is similar to how NICs without
>> an assigned MAC address are handled.
> 
> You use words like "unique" and MAC, thus I fail to see how one fixed
> string for all boards matches this. MACs are unique. Property value set
> in DTS for all devices is not.
>> You also need to explain who assigns this value (MACs are assigned) or
> if no one, then why you cannot use random? I also do not see how this
> property solves this...  One person would set it to value "1", other to
> "2" but third decide to reuse "1"? How do you solve it for all projects
> in the upstream?

Some background: Any DPLL driver has to use a unique number during the
DPLL device/channel registration. The number must be unique for the
device across a clock domain (e.g., a single PTP network).

NIC drivers that expose DPLL functionality usually use their MAC address
to generate such a unique ID. A standalone DPLL driver does not have
this option, as there are no NIC ports and therefore no MAC addresses.
Such a driver can use any other source for the ID (e.g., the chip's
serial number). Unfortunately, this is not the case for zl3073x-based
hardware, as its current firmware revisions do not expose information
that could be used to generate the clock ID (this may change in the
future).

There is no authority that assigns clock ID value ranges similarly to
MAC addresses (OUIs, etc.), but as mentioned above, uniqueness is
required across a single PTP network so duplicates outside this
single network are not a problem.

A randomly generated clock ID works, but the problem is that the value
is different after each reboot. Yes, there is an option to override the
clock ID using the devlink interface, but this also has to be done after
every reboot or power-up.

> All this must be clearly explained when you add new, generic property.

Would it be acceptable to define a hardware-specific property, since
only this hardware has this particular problem (the absence of a chip
unique attribute)? I'm referring to a property like 'microchip,id' or
'microchip,dpll-id' defined in microchip,zl30731.yaml.

> Best regards,
> Krzysztof

Thanks,
Ivan


  reply	other threads:[~2025-07-21 12:54 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-17 17:10 [PATCH net-next 0/2] dpll: zl3073x: Read clock ID from device property Ivan Vecera
2025-07-17 17:10 ` [PATCH net-next 1/2] dt-bindings: dpll: Add clock ID property Ivan Vecera
2025-07-18  6:55   ` Krzysztof Kozlowski
2025-07-18 12:16     ` Ivan Vecera
2025-07-21  9:23       ` Krzysztof Kozlowski
2025-07-21 12:54         ` Ivan Vecera [this message]
2025-07-23  6:25           ` Krzysztof Kozlowski
2025-07-23  7:23             ` Ivan Vecera
2025-08-03 11:12               ` Krzysztof Kozlowski
2025-08-04 18:26                 ` Ivan Vecera
2025-08-04 18:45                   ` Andrew Lunn
2025-08-05 15:26                     ` Ivan Vecera
2025-08-05 15:31                       ` Andrew Lunn
2025-07-17 17:11 ` [PATCH net-next 2/2] dpll: zl3073x: Initialize clock ID from device property Ivan Vecera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=804b4a5f-06bc-4943-8801-2582463c28ef@redhat.com \
    --to=ivecera@redhat.com \
    --cc=Prathosh.Satish@microchip.com \
    --cc=arkadiusz.kubalewski@intel.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jiri@resnulli.us \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mschmidt@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=poros@redhat.com \
    --cc=robh@kernel.org \
    --cc=vadim.fedorenko@linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®