On Wed, Feb 26, 2025 at 07:29:54PM +0500, Nikita Travkin wrote: > While considering to propose WoA EL2 dt overlays upstream I was looking > at existing overlays and noticed that some of them are broken: they put > seemingly meaningful fixups into the overlay's "/" node, which places > them into the overlay "metadata" itself, not into a fixup fragment to be > applied to the actual dtb. This series fixes those two by changing to > full path "&{/}" which should work as it was initially intended. > > See demonstration of the problem below: > > $ cat base.dts > /dts-v1/; > / { > compatible = "fake,board"; > fake,value = <42>; > }; > > $ cat extra.dtso > /dts-v1/; > /plugin/; > > / { > foo; > bar { baz; }; > }; > &{/} { whatever-comes-next-after-baz; }; > > $ dtc base.dts -o base.dtb > $ dtc extra.dtso -o extra.dtbo > $ fdtoverlay -i base.dtb -o combine.dtb extra.dtbo > $ dtc base.dtb > /dts-v1/; > > / { > compatible = "fake,board"; > fake,value = <0x2a>; > }; > > $ dtc extra.dtbo > /dts-v1/; > > / { > foo; > > bar { > baz; > }; Is this behaviour documented somewhere? I'd say, it would be a surprise to me. > > fragment@0 { > target-path = "/"; > > __overlay__ { > whatever-comes-next-after-baz; > }; > }; > }; > > $ dtc combine.dtb > /dts-v1/; > > / { > whatever-comes-next-after-baz; > compatible = "fake,board"; > fake,value = <0x2a>; > }; > > In the resulting dtb foo bar and baz are missing. > > Signed-off-by: Nikita Travkin <nikita@xxxxxxx> > --- > Nikita Travkin (2): > arm64: dts: qcom: qrb5165-rb5-vision-mezzanine: Fix broken overlay root > arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Fix the overlay root > > arch/arm64/boot/dts/qcom/qrb5165-rb5-vision-mezzanine.dtso | 2 +- > arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > --- > base-commit: 8433c776e1eb1371f5cd40b5fd3a61f9c7b7f3ad > change-id: 20250226-qcom-nonroot-overlays-bfe21d33be8c > > Best regards, > -- > Nikita Travkin <nikita@xxxxxxx> > -- With best wishes Dmitry