From: Ayush Singh <ayush@beagleboard.org>
To: Herve Codina <herve.codina@bootlin.com>
Cc: Andrew Davis <afd@ti.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Saravana Kannan <saravanak@google.com>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Luca Ceresoli <luca.ceresoli@bootlin.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [PATCH 0/7] of: overlay: Add support for export-symbols node feature
Date: Wed, 8 Jan 2025 13:58:04 +0530 [thread overview]
Message-ID: <d25572fa-8f0c-4f19-874c-6698a1db40ae@beagleboard.org> (raw)
In-Reply-To: <20250108090750.45685a50@bootlin.com>
On 08/01/25 13:37, Herve Codina wrote:
> Hi Ayush,
>
> On Wed, 8 Jan 2025 13:06:03 +0530
> Ayush Singh <ayush@beagleboard.org> wrote:
>
>> On 10/12/24 16:25, Herve Codina wrote:
>>> Hi Ayush,
>>>
>>> On Tue, 10 Dec 2024 15:26:44 +0530
>>> Ayush Singh <ayush@beagleboard.org> wrote:
>>>
>>>> On 10/12/24 15:11, Herve Codina wrote:
>>>>> Hi Ayush,
>>>>>
>>>>> On Tue, 10 Dec 2024 14:52:22 +0530
>>>>> Ayush Singh <ayush@beagleboard.org> wrote:
>>>>>
>>>>> ...
>>>>>>
>>>>>> What is the reason for not using symbols directly as described here [3]?
>>>>>>
>>>>>> I do like this approach since it does not pollute the global symbols.
>>>>>> Just want to know if there are any other reasons for it.
>>>>>>
>>>>>
>>>>> Modifying the __symbols__ node at runtime (adding / removing properties in
>>>>> it) exposes memory leaks if __symbols__ already exist in the live DT.
>>>>> This __symbols__ node exist if the dtb was compiled with '-@' or if you
>>>>> chain the overlay (i.e. __symbols__ node created by the first overlay).
>>>>
>>>> Yeah, that is a problem, specially in a setup which might involve
>>>> hot-plugging.
>>>>
>>>>>
>>>>> I think also that some conflicts can appears. What happens if you want to
>>>>> add a new label but this label is already present for some other purpose?
>>>>
>>>> I do not think that actually is a problem. As described in the original
>>>> patch [0], the symbol and connector overlay is supposed to be applied as
>>>> a group (overwriting any conflicting symbols in the process).
>>>>
>>>> The reason why this is not a problem is that `__symbols__` are only used
>>>> to resolve the phandles (overlays do not support path references yet),
>>>> but do not really have a purpose in the livetree (at least far as I
>>>> know, but I can be wrong).
>>>>
>>>>>
>>>>> Best regards,
>>>>> Hervé
>>>>
>>>> [0]: https://lore.kernel.org/lkml/20240702164403.29067-1-afd@ti.com/
>>>
>>>
>>> Also, in your first overlay (adding symbols in __sympbols__ node), you have
>>> something like:
>>> GROVE_PIN1_MUX_I2C_SCL = "/bus@f0000/pinctrl@f4000/grove-i2c-pins";
>>>
>>> If I understood correctly, other overlays will have GROVE_PIN1_MUX_I2C_SCL
>>> as unresolved symbols and will use GROVE_PIN1_MUX_I2C_SCL to reference the
>>> grove-i2c-pins node.
>>> This unresolved symbol from the overlay is resolved thanks to the __symbols__
>>> table where you added GROVE_PIN1_MUX_I2C_SCL (first overlay operation).
>>>
>>> In order to work, you need to have a phandle property set in the
>>> grove-i2c-pins node.
>>>
>>> This is done by dtc when you compile the dtb containing the grove-i2c-pins
>>> node (i.e. k3-am625-beagleplay.dts)
>>>
>>> The phandle property will be set only if:
>>> - a label for grove-i2c-pins already exist and -@ option is used
>>> or
>>> - a label for grove-i2c-pins already exist and it is referenced as a phandle
>>> in the dts (k3-am625-beagleplay.dts).
>>>
>>> Otherwise, dtc will not create the phandle property and without this
>>> property, the symbol resolution will not be correct.
>>>
>>> Best regards,
>>> Hervé
>>>
>>
>> Hello Hervé
>>
>> Thanks for the clarification. things have changed a bit since the last
>> message and it seems like trying to add path reference support to
>> overlays is not the best way forward [0]. So I would love to help move
>> this approach forward.
>>
>> I do have a question regarding this approach, so here I go:
>>
>> Can the `export-symbols` node be added to devicetree spec and be
>> resolved by the devicetree compiler (and fdtoverlay) instead of being
>> runtime resolution.
>
> Of course, a solution with fdtoverlay is welcome but it should not fully
> replace the runtime resolution. In our case, we need runtime resolution
> because the overlay is loaded by a driver.
>
> Both resolutions (fdtoverlay and runtime) should work.
I see, it seems linux does not use libfdt for applying overlays internally.
>
>>
>> To get some context, I would like to share the addon-board overlays
>> between ZephyrRTOS and Linux kernel. I would be happy to try adding
>> support to dtc compiler for it. I am also tagging David Gibson (dtc
>> maintainer) in this discussion since he also had some ideas regarding
>> the feasibility and pitfalls of adding it to devicetree compiler (and spec).
>>
>>
>> [0]:
>> https://lore.kernel.org/devicetree-compiler/6b2dba90-3c52-4933-88f3-b47f96dc7710@beagleboard.org/T/#m900b5ca13cfc28396d4d46d9c3130a7070fa8c90
>>
>> Best regards,
>> Ayush Singh
>>
>
> Thanks for your help proposal!
>
> Best regards,
> Hervé
I will experiment with adding support to dtc and see how things look.
Hopefully, 2025 is the year of addon board support.
Best regards,
Ayush Singh
next prev parent reply other threads:[~2025-01-08 8:28 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 15:18 [PATCH 0/7] of: overlay: Add support for export-symbols node feature Herve Codina
2024-12-09 15:18 ` [PATCH 1/7] dt-bindings: Add support for export-symbols node Herve Codina
2024-12-09 16:26 ` Rob Herring (Arm)
2024-12-18 13:05 ` Herve Codina
2024-12-09 17:27 ` Luca Ceresoli
2024-12-10 8:20 ` Herve Codina
2024-12-09 15:18 ` [PATCH 2/7] of: resolver: Introduce get_phandle_from_symbols_node() Herve Codina
2024-12-09 15:18 ` [PATCH 3/7] of: resolver: Add export_symbols in of_resolve_phandles() parameters Herve Codina
2024-12-09 15:18 ` [PATCH 4/7] of: resolver: Add support for the export symbols node Herve Codina
2024-12-09 15:18 ` [PATCH 5/7] of: overlay: Add export_symbols_name in of_overlay_fdt_apply() parameters Herve Codina
2024-12-09 17:27 ` Luca Ceresoli
2024-12-10 8:21 ` Herve Codina
2024-12-09 15:18 ` [PATCH 6/7] of: overlay: Add support for the export symbols node Herve Codina
2024-12-09 15:18 ` [PATCH 7/7] of: unittest: Add tests for export symbols Herve Codina
2024-12-10 16:51 ` kernel test robot
2024-12-12 1:05 ` kernel test robot
2024-12-09 16:47 ` [PATCH 0/7] of: overlay: Add support for export-symbols node feature Andrew Davis
2024-12-09 17:03 ` Herve Codina
2024-12-09 17:47 ` Andrew Davis
2024-12-09 19:39 ` Rob Herring
2024-12-10 9:30 ` Ayush Singh
2024-12-09 20:11 ` Rob Herring
2024-12-10 8:16 ` Herve Codina
2024-12-10 13:46 ` Rob Herring
2024-12-10 14:58 ` Herve Codina
2024-12-18 12:22 ` Herve Codina
2024-12-10 9:22 ` Ayush Singh
2024-12-10 9:41 ` Herve Codina
2024-12-10 9:56 ` Ayush Singh
2024-12-10 10:55 ` Herve Codina
2025-01-08 7:36 ` Ayush Singh
2025-01-08 8:07 ` Herve Codina
2025-01-08 8:28 ` Ayush Singh [this message]
2025-01-08 9:47 ` Herve Codina
2025-01-10 4:26 ` David Gibson
2025-01-10 7:36 ` Herve Codina
2025-01-10 7:55 ` Ayush Singh
2025-01-11 3:17 ` David Gibson
2025-04-29 19:12 ` Ayush Singh
-- strict thread matches above, loose matches on Subject: below --
2025-04-30 12:48 Herve Codina
2025-04-30 12:50 ` Herve Codina
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=d25572fa-8f0c-4f19-874c-6698a1db40ae@beagleboard.org \
--to=ayush@beagleboard.org \
--cc=afd@ti.com \
--cc=arnd@arndb.de \
--cc=conor+dt@kernel.org \
--cc=david@gibson.dropbear.id.au \
--cc=devicetree@vger.kernel.org \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=herve.codina@bootlin.com \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luca.ceresoli@bootlin.com \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=thomas.petazzoni@bootlin.com \
/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;
as well as URLs for NNTP newsgroup(s).