Re: delete-node without label or address from overlay dts

Phil Dawson <[email protected]> Fri, 16 Jan 2026 14:39:30 +0000
Newsgroups org.kernel.vger.devicetree-compiler
Message-ID <CALx+s3SsAikSU_Butewas-MRmP+Dt+WhnwGuYgY=x=OSw8SfQg@mail.gmail.com>
On Fri, 16 Jan 2026 at 13:03, David Gibson <[email protected]> wrote:
>
> On Thu, Jan 15, 2026 at 12:00:13PM +0000, Phil Dawson wrote:
> > Hi,
> >
> > Apologies if this is covered in documentation that I've missed.
> > Is there a way to use /delete-node/ to remove a node with no label or
> > address from a plugin/overlay dts file?
>
> No.  /delete-node/ has no representation within overlay files.  One of
> several examples of how plugin/overlays are misleading in that they
> sort of resemble dtc's older build-time overlays, but not really.
>
Just to be clear as my understanding is a bit muddy:

I know you cannot use an overlay to remove a node from the base tree
at runtime.

But is it correct that when constructing an overlay with dtc you can
only use /delete-node/ if the node you wish to remove has a label
or address?

> > I have a device tree overlay file pl.dtsi that is auto generated by
> > vendor tools. Unfortunately many nodes in this file are generated
> > wrong and the overlay fails to apply.
> > I've been removing the broken nodes with /delete-node/ &label; syntax
> > in a second dtsi file and then compiling the two together with a
> > wrapper dts file and the commands:
> > gcc -E -nostdinc -undef -D__DTS__ -x assembler-with-cpp -o pl.dts.pp
> > <path redacted>/pl.dts
> > dtc -R 8 -b 0 -p 0 -@ -H epapr -o pl.dtbo -I dts -O dtb pl.dts.pp
> > (These are run as part of a larger yocto build so there may be some
> > other work around this I'm missing!)
> >
> > The auto generated pl.dtsi also has a few broken nodes without labels
> > or addresses like this:
> >
> > /dts-v1/;
> > /plugin/;
> > &amba {
> >     vcap_hdmi_input_1_v_proc_ss_1 {
> > <contents removed for brevity>
> >     };
> > };
> >
> > I am unable to figure out the syntax to remove these nodes with
> > /delete-node/, should this be possible?
> >
> > I've tried using the below syntax:
> > &amba {
> >     /delete-node/ vcap_hdmi_input_1_v_proc_ss_1;
> > };
> >
> > But while dtc doesn't complain, the nodes are not removed from the
> > resulting dtbo.
>
> Hm, we probably should make this generate an error.  I'm unlikely to
> get to that any time soon, though.
>
> > I also can't remove using the full path as there is no root node/full
> > path in the generated dtsi file.
> >
> > According to this discussion on an unrelated project
> > (https://github.com/zephyrproject-rtos/zephyr/discussions/67228)
> > trying to delete a node with a name and address without using the
> > address won't work. But in my case the node has no address.
> >
> > I can work around my issue by hacking the auto generated files (while
> > I try to persuade the vendor to fix them!) to add a label for these
> > nodes and then removing them using the label. But is there a correct
> > way of doing this just using my separate dtsi file and dtc?
> >
> > Best Regards,
> > Phil Dawson
> >
>
> --
> David Gibson (he or they)       | I'll have my music baroque, and my code
> david AT gibson.dropbear.id.au  | minimalist, thank you, not the other way
>                                 | around.
> http://www.ozlabs.org/~dgibson

Thanks,
Phil