From 269e49ff34595296c3bc9aada5918c3c16e3d968 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 12 Jun 2026 09:42:04 +0100 Subject: [PATCH] ovmerge: allow top-level phandles to optionally be preserved Look for the 'dtoverlay,preserve-phandle' flag in the overlay payloads, preserving the label on any payloads where it is present. This is the ovmerge equivalent of https://github.com/raspberrypi/utils/pull/198. Signed-off-by: Phil Elwell --- ovmerge/ovmerge | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ovmerge/ovmerge b/ovmerge/ovmerge index 6637fec..40969cc 100755 --- a/ovmerge/ovmerge +++ b/ovmerge/ovmerge @@ -304,6 +304,17 @@ foreach my $overlay (@ARGV) foreach my $fragment (get_fragments($dt)) { delete_node($fragment) if (get_child($fragment, '__dormant__')); + + # Treat a dtoverlay,preserve-phandle property as an export of any label on the node + my $payload = get_child($fragment, '__overlay__'); + if (get_prop($payload, "dtoverlay,preserve-phandle")) + { + foreach my $label (get_labels($payload)) + { + adj_ref(1, $label); + } + delete_prop($payload, "dtoverlay,preserve-phandle"); + } } } $cur_dt = undef;