On Thu, Feb 21, 2019 at 12:03 PM David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> wrote: > > On Thu, Feb 21, 2019 at 11:51:05AM +0800, Chen-Yu Tsai wrote: > > Commit 4038fd90056e ("dtc: add ability to make nodes conditional on them > > being referenced") added the new /omit-if-no-ref/ directive to mark > > nodes as eligible to be discarded if not referenced. The mechanism to > > process this happens before the symbol generation phase. This means even > > if symbol generation is requested and the node has a label, it will be > > discarded if there are no references to it within the same file. > > > > This is probably not what people expect. When using symbol generation to > > compile base device trees for applying overlays, nodes with labels could > > be referenced by the overlays, and therefore should be preserved. > > Hmm.. actually that does seem like the behaviour I'd expect. Using > /omit-if-no-ref/ and then expecting the node to appear without > referencing it seems like a user error. I suppose the use-case we're looking at is keeping the size small for standard blobs, but having the nodes available when targeting overlay uses. We're currently targeting pinctrl nodes for this. There are a whole lot of muxing options for every SoC, but a board will only use a small set of them. But with overlays, we'd want all the options to be available so the overlays don't have to redefine them again. Not sure if this is practical, but it's the use case I had in mind. Maybe we could come up with some new directive or compiler option? ChenYu