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