* [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO @ 2025-06-24 18:13 Raymond Mao 2025-06-26 16:32 ` Conor Dooley ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Raymond Mao @ 2025-06-24 18:13 UTC (permalink / raw) To: linux-doc Cc: Raymond Mao, Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-kernel When managing multiple base device trees and overlays in a structured way (e.g. bundled in firmware or tools), it is helpful to identify the intended target base DT for each overlay, which can be done via a top-level compatible string in the overlay. This patch updates the document with a note and example for this practice. Signed-off-by: Raymond Mao <raymond.mao@linaro.org> --- Documentation/devicetree/overlay-notes.rst | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Documentation/devicetree/overlay-notes.rst b/Documentation/devicetree/overlay-notes.rst index 35e79242af9a..30b142d1b2ee 100644 --- a/Documentation/devicetree/overlay-notes.rst +++ b/Documentation/devicetree/overlay-notes.rst @@ -103,6 +103,34 @@ The above bar.dtso example modified to use target path syntax is:: ---- bar.dtso -------------------------------------------------------------- +Overlay identification +---------------------- + +When managing overlays dynamically or bundling multiple base device trees +and overlays in a single system (e.g., in firmware, initramfs, or user-space +tools), it becomes important to associate each overlay with its intended +target base DT. + +To support this, overlays should include the top-level compatible string +from its base DT. +This enables higher-level software or firmware to identify which base DT +an overlay is compatible with and apply it accordingly. + +Example usage:: + + ---- bar.dtso - overlay with top-level compatible string ------------------- + /dts-v1/; + /plugin/; + compatible = "corp,foo"; + + ... + ---- bar.dtso -------------------------------------------------------------- + +This top-level compatible string is not required by the kernel overlay +mechanism itself, but it is strongly recommended for managing overlays in +scalable systems. + + Overlay in-kernel API -------------------------------- -- 2.25.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO 2025-06-24 18:13 [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO Raymond Mao @ 2025-06-26 16:32 ` Conor Dooley 2025-07-01 15:15 ` Ilias Apalodimas 2025-07-10 0:58 ` Rob Herring 2 siblings, 0 replies; 5+ messages in thread From: Conor Dooley @ 2025-06-26 16:32 UTC (permalink / raw) To: Raymond Mao Cc: linux-doc, Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-kernel [-- Attachment #1: Type: text/plain, Size: 52 bytes --] Acked-by: Conor Dooley <conor.dooley@microchip.com> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO 2025-06-24 18:13 [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO Raymond Mao 2025-06-26 16:32 ` Conor Dooley @ 2025-07-01 15:15 ` Ilias Apalodimas 2025-07-10 0:58 ` Rob Herring 2 siblings, 0 replies; 5+ messages in thread From: Ilias Apalodimas @ 2025-07-01 15:15 UTC (permalink / raw) To: Raymond Mao, linux-doc Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-kernel Hi Raymond, On Tue Jun 24, 2025 at 9:13 PM EEST, Raymond Mao wrote: > When managing multiple base device trees and overlays in a structured > way (e.g. bundled in firmware or tools), it is helpful to identify the > intended target base DT for each overlay, which can be done via a > top-level compatible string in the overlay. > > This patch updates the document with a note and example for this > practice. I think it would make sense to describe the firmware handoff stuff shortly here [0] and explain why we need it. I.e it's possible for devices have a common firmware binary which only differs on the DT and the applied overlays so we need a way to identify which overlays should be applied once the DT is selected. [0] https://github.com/FirmwareHandoff/firmware_handoff Also please add Suggested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> if you send another version. Thanks /Ilias > > Signed-off-by: Raymond Mao <raymond.mao@linaro.org> > --- > Documentation/devicetree/overlay-notes.rst | 28 ++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/Documentation/devicetree/overlay-notes.rst b/Documentation/devicetree/overlay-notes.rst > index 35e79242af9a..30b142d1b2ee 100644 > --- a/Documentation/devicetree/overlay-notes.rst > +++ b/Documentation/devicetree/overlay-notes.rst > @@ -103,6 +103,34 @@ The above bar.dtso example modified to use target path syntax is:: > ---- bar.dtso -------------------------------------------------------------- > > > +Overlay identification > +---------------------- > + > +When managing overlays dynamically or bundling multiple base device trees > +and overlays in a single system (e.g., in firmware, initramfs, or user-space > +tools), it becomes important to associate each overlay with its intended > +target base DT. > + > +To support this, overlays should include the top-level compatible string > +from its base DT. > +This enables higher-level software or firmware to identify which base DT > +an overlay is compatible with and apply it accordingly. > + > +Example usage:: > + > + ---- bar.dtso - overlay with top-level compatible string ------------------- > + /dts-v1/; > + /plugin/; > + compatible = "corp,foo"; > + > + ... > + ---- bar.dtso -------------------------------------------------------------- > + > +This top-level compatible string is not required by the kernel overlay > +mechanism itself, but it is strongly recommended for managing overlays in > +scalable systems. > + > + > Overlay in-kernel API > -------------------------------- > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO 2025-06-24 18:13 [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO Raymond Mao 2025-06-26 16:32 ` Conor Dooley 2025-07-01 15:15 ` Ilias Apalodimas @ 2025-07-10 0:58 ` Rob Herring 2025-07-14 14:37 ` Raymond Mao 2 siblings, 1 reply; 5+ messages in thread From: Rob Herring @ 2025-07-10 0:58 UTC (permalink / raw) To: Raymond Mao Cc: linux-doc, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-kernel, devicetree-spec +devicetree-spec (because linux-doc doesn't really care) On Tue, Jun 24, 2025 at 11:13:20AM -0700, Raymond Mao wrote: > When managing multiple base device trees and overlays in a structured > way (e.g. bundled in firmware or tools), it is helpful to identify the > intended target base DT for each overlay, which can be done via a > top-level compatible string in the overlay. I think this should be more general and more specific at the same time. You might not want to match on a top-level board/soc compatible, but rather the compatible for a specific node. For example, you may have an overlay for a cape, hat, etc. that applies to a connector node and that connector node could be on any number of boards or even multiple connectors on 1 board. That's all under development, but so far in those cases we expect some sort of connector driver to apply the overlays. But I think you could have the same issue of identifying which overlay files are relevant. I don't think folks working on add-on boards have thought that far ahead. And since we don't know the target-path up front, it is just left blank so far. It would be better if we expressed *something*. Perhaps 'target-compatible'? Something like that would work in your case I think. You'd have to be somewhat crazy, but you can bundle a bunch of mutually-exclusive or unrelated overlays within a single overlay file. I don't know that we want to prevent doing that. Someone might come up with some not crazy reason to do that... > > This patch updates the document with a note and example for this > practice. > > Signed-off-by: Raymond Mao <raymond.mao@linaro.org> > --- > Documentation/devicetree/overlay-notes.rst | 28 ++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/Documentation/devicetree/overlay-notes.rst b/Documentation/devicetree/overlay-notes.rst > index 35e79242af9a..30b142d1b2ee 100644 > --- a/Documentation/devicetree/overlay-notes.rst > +++ b/Documentation/devicetree/overlay-notes.rst > @@ -103,6 +103,34 @@ The above bar.dtso example modified to use target path syntax is:: > ---- bar.dtso -------------------------------------------------------------- > > > +Overlay identification > +---------------------- > + > +When managing overlays dynamically or bundling multiple base device trees > +and overlays in a single system (e.g., in firmware, initramfs, or user-space > +tools), it becomes important to associate each overlay with its intended > +target base DT. > + > +To support this, overlays should include the top-level compatible string > +from its base DT. The base has multiple compatible strings, so which one? Has to match on any one or all of them? > +This enables higher-level software or firmware to identify which base DT > +an overlay is compatible with and apply it accordingly. > + > +Example usage:: > + > + ---- bar.dtso - overlay with top-level compatible string ------------------- > + /dts-v1/; > + /plugin/; > + compatible = "corp,foo"; > + > + ... > + ---- bar.dtso -------------------------------------------------------------- > + > +This top-level compatible string is not required by the kernel overlay > +mechanism itself, but it is strongly recommended for managing overlays in > +scalable systems. > + > + > Overlay in-kernel API > -------------------------------- > > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO 2025-07-10 0:58 ` Rob Herring @ 2025-07-14 14:37 ` Raymond Mao 0 siblings, 0 replies; 5+ messages in thread From: Raymond Mao @ 2025-07-14 14:37 UTC (permalink / raw) To: Rob Herring Cc: linux-doc, Krzysztof Kozlowski, Conor Dooley, devicetree, linux-kernel, devicetree-spec Hi Rob, On Wed, 9 Jul 2025 at 20:58, Rob Herring <robh@kernel.org> wrote: > > +devicetree-spec (because linux-doc doesn't really care) > > On Tue, Jun 24, 2025 at 11:13:20AM -0700, Raymond Mao wrote: > > When managing multiple base device trees and overlays in a structured > > way (e.g. bundled in firmware or tools), it is helpful to identify the > > intended target base DT for each overlay, which can be done via a > > top-level compatible string in the overlay. > > I think this should be more general and more specific at the same time. > > You might not want to match on a top-level board/soc compatible, but > rather the compatible for a specific node. For example, you may have an > overlay for a cape, hat, etc. that applies to a connector node and that > connector node could be on any number of boards or even multiple > connectors on 1 board. That's all under development, but so far in those > cases we expect some sort of connector driver to apply the overlays. But > I think you could have the same issue of identifying which overlay files > are relevant. I don't think folks working on add-on boards have thought > that far ahead. > The use case from the angle of a specific driver might be a completely different scenario. The motivation of this patch is to support handing over DTOs as transfer entries across different boot stages via transfer list. Unlike for a specific driver, a DTO within a transfer entry is usually board-leveled and contains nodes for more than one driver. The transfer list library in each boot stage does not have knowledge on a single specific driver and which target base should be applied is the only interest. That is the common DTO use case in Firmware Handoff and why we need the top-level compatible to be introduced. For details, please see my PR for the Firmware Handoff spec update to support DTO as transfer entries at: https://github.com/FirmwareHandoff/firmware_handoff/pull/74 > And since we don't know the target-path up front, it is just left blank > so far. It would be better if we expressed *something*. Perhaps > 'target-compatible'? Something like that would work in your case I > think. > > You'd have to be somewhat crazy, but you can bundle a bunch of > mutually-exclusive or unrelated overlays within a single overlay file. I > don't know that we want to prevent doing that. Someone might come up > with some not crazy reason to do that... > > > > > This patch updates the document with a note and example for this > > practice. > > > > Signed-off-by: Raymond Mao <raymond.mao@linaro.org> > > --- > > Documentation/devicetree/overlay-notes.rst | 28 ++++++++++++++++++++++ > > 1 file changed, 28 insertions(+) > > > > diff --git a/Documentation/devicetree/overlay-notes.rst b/Documentation/devicetree/overlay-notes.rst > > index 35e79242af9a..30b142d1b2ee 100644 > > --- a/Documentation/devicetree/overlay-notes.rst > > +++ b/Documentation/devicetree/overlay-notes.rst > > @@ -103,6 +103,34 @@ The above bar.dtso example modified to use target path syntax is:: > > ---- bar.dtso -------------------------------------------------------------- > > > > > > +Overlay identification > > +---------------------- > > + > > +When managing overlays dynamically or bundling multiple base device trees > > +and overlays in a single system (e.g., in firmware, initramfs, or user-space > > +tools), it becomes important to associate each overlay with its intended > > +target base DT. > > + > > +To support this, overlays should include the top-level compatible string > > +from its base DT. > > The base has multiple compatible strings, so which one? Has to match on > any one or all of them? Match only with base's top-level compatible, see above for the explanation of the use case. Regards, Raymond > > > +This enables higher-level software or firmware to identify which base DT > > +an overlay is compatible with and apply it accordingly. > > + > > +Example usage:: > > + > > + ---- bar.dtso - overlay with top-level compatible string ------------------- > > + /dts-v1/; > > + /plugin/; > > + compatible = "corp,foo"; > > + > > + ... > > + ---- bar.dtso -------------------------------------------------------------- > > + > > +This top-level compatible string is not required by the kernel overlay > > +mechanism itself, but it is strongly recommended for managing overlays in > > +scalable systems. > > + > > + > > Overlay in-kernel API > > -------------------------------- > > > > -- > > 2.25.1 > > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-07-14 14:37 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-24 18:13 [PATCH] docs: devicetree: overlay-notes: recommend top-level compatible in DTSO Raymond Mao 2025-06-26 16:32 ` Conor Dooley 2025-07-01 15:15 ` Ilias Apalodimas 2025-07-10 0:58 ` Rob Herring 2025-07-14 14:37 ` Raymond Mao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).