u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] scripts/Makefile.lib: increase detail for dtsi debug output
@ 2025-09-01  9:44 E Shattow
  2025-09-03  9:17 ` E Shattow
  0 siblings, 1 reply; 2+ messages in thread
From: E Shattow @ 2025-09-01  9:44 UTC (permalink / raw)
  To: Tom Rini; +Cc: u-boot, E Shattow

Skip automatic dtsi selection if ARCH is not defined and introduce
u_boot_dtsi_search for use with foreach method to implement the automatic
dtsi inclusion. Increase code re-use and detail for debug output.

Detailed dtsi automatic selection debug output when DEVICE_TREE_DEBUG=1
  - Indicate when key is undefined and skip undefined search pattern
  - Indicate when search pattern is found or not found, and the pattern
  - Show values of defined keys

Signed-off-by: E Shattow <e@freeshell.de>
---
 scripts/Makefile.lib | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 5db2fbc418a..0d70868a339 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -195,21 +195,33 @@ cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE)     \
 ld_flags       = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
 
 # Try these files in order to find the U-Boot-specific .dtsi include file
+ifneq ($(strip $(ARCH)),)
+
 u_boot_dtsi_loc = $(srctree)/arch/$(ARCH)/dts/
 
-u_boot_dtsi_options = $(strip $(wildcard $(u_boot_dtsi_loc)$(basename $(notdir $<))-u-boot.dtsi) \
-	$(wildcard $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_SOC))-u-boot.dtsi) \
-	$(wildcard $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \
-	$(wildcard $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \
+u_boot_dtsi_search = $(<) \
+	$(CONFIG_SYS_SOC) $(CONFIG_SYS_CPU) $(CONFIG_SYS_VENDOR)
+
+u_boot_dtsi_pattern = $(eval x=$$(patsubst "%",%,$(i)))$(strip \
+	$(and $(x),$(wildcard \
+	$(u_boot_dtsi_loc)$(basename $(notdir $(x)))-u-boot.dtsi)))
+
+u_boot_dtsi_options = $(strip \
+	$(foreach i,$(value u_boot_dtsi_search),$(u_boot_dtsi_pattern)) \
 	$(wildcard $(u_boot_dtsi_loc)u-boot.dtsi))
 
-u_boot_dtsi_options_raw = $(warning Automatic .dtsi inclusion: options: \
-	$(u_boot_dtsi_loc)$(basename $(notdir $<))-u-boot.dtsi \
-	$(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_SOC))-u-boot.dtsi \
-	$(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi \
-	$(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi \
-	$(u_boot_dtsi_loc)u-boot.dtsi ... \
-	found: $(if $(u_boot_dtsi_options),"$(u_boot_dtsi_options)",nothing!))
+u_boot_dtsi_pattern_raw = $(eval x=$$(patsubst "%",%,$(i))) \
+	$(i)=$(if $(x),$(and $(x),$(x) $(if $(u_boot_dtsi_pattern),,not) \
+	found @ $(u_boot_dtsi_loc)$(basename $(notdir $(x)))-u-boot.dtsi),(undefined)) ||
+
+u_boot_dtsi_options_raw = $(strip \
+	Automatic inclusion \
+	$(or $(u_boot_dtsi_options),(undefined)) from search: \
+	$(foreach i,$(value u_boot_dtsi_search),$(u_boot_dtsi_pattern_raw)) \
+	u-boot.dtsi $(if $(wildcard $(u_boot_dtsi_loc)u-boot.dtsi),,not) \
+	found @ $(u_boot_dtsi_loc)u-boot.dtsi)
+
+endif
 
 # Uncomment for debugging
 # This shows all the files that were considered and the one that we chose.

base-commit: e4c8b32d03d7ecffd586b7d33336603ad639d7c0
-- 
2.50.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] scripts/Makefile.lib: increase detail for dtsi debug output
  2025-09-01  9:44 [PATCH v2] scripts/Makefile.lib: increase detail for dtsi debug output E Shattow
@ 2025-09-03  9:17 ` E Shattow
  0 siblings, 0 replies; 2+ messages in thread
From: E Shattow @ 2025-09-03  9:17 UTC (permalink / raw)
  To: Tom Rini; +Cc: u-boot


On 9/1/25 02:44, E Shattow wrote:
> Skip automatic dtsi selection if ARCH is not defined and introduce
> u_boot_dtsi_search for use with foreach method to implement the automatic
> dtsi inclusion. Increase code re-use and detail for debug output.
> 
> Detailed dtsi automatic selection debug output when DEVICE_TREE_DEBUG=1
>   - Indicate when key is undefined and skip undefined search pattern
>   - Indicate when search pattern is found or not found, and the pattern
>   - Show values of defined keys
> 
> Signed-off-by: E Shattow <e@freeshell.de>
> ---
>  scripts/Makefile.lib | 34 +++++++++++++++++++++++-----------
>  1 file changed, 23 insertions(+), 11 deletions(-)
> 
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 5db2fbc418a..0d70868a339 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -195,21 +195,33 @@ cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(UBOOTINCLUDE)     \
>  ld_flags       = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
>  

>  # Try these files in order to find the U-Boot-specific .dtsi include file
> +ifneq ($(strip $(ARCH)),)

I think this guarding for non-empty $(ARCH) could be changed to become:

ifneq ($(filter $(obj),dts/upstream/src/$(ARCH) arch/$(ARCH)/dts),)

it could be $(obj) or $(src) I am not sure if either is correct, but
they do seem to compile for OF_UPSTREAM and non-OF_UPSTREAM target. This
avoids the work and debug output unless actually compiling in the dts
target directory. Am I missing any detail here?

> +
>  u_boot_dtsi_loc = $(srctree)/arch/$(ARCH)/dts/
>  
> -u_boot_dtsi_options = $(strip $(wildcard $(u_boot_dtsi_loc)$(basename $(notdir $<))-u-boot.dtsi) \
> -	$(wildcard $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_SOC))-u-boot.dtsi) \
> -	$(wildcard $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \
> -	$(wildcard $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \
> +u_boot_dtsi_search = $(<) \
> +	$(CONFIG_SYS_SOC) $(CONFIG_SYS_CPU) $(CONFIG_SYS_VENDOR)
> +
> +u_boot_dtsi_pattern = $(eval x=$$(patsubst "%",%,$(i)))$(strip \
> +	$(and $(x),$(wildcard \
> +	$(u_boot_dtsi_loc)$(basename $(notdir $(x)))-u-boot.dtsi)))
> +
> +u_boot_dtsi_options = $(strip \
> +	$(foreach i,$(value u_boot_dtsi_search),$(u_boot_dtsi_pattern)) \
>  	$(wildcard $(u_boot_dtsi_loc)u-boot.dtsi))
>  
> -u_boot_dtsi_options_raw = $(warning Automatic .dtsi inclusion: options: \
> -	$(u_boot_dtsi_loc)$(basename $(notdir $<))-u-boot.dtsi \
> -	$(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_SOC))-u-boot.dtsi \
> -	$(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi \
> -	$(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi \
> -	$(u_boot_dtsi_loc)u-boot.dtsi ... \
> -	found: $(if $(u_boot_dtsi_options),"$(u_boot_dtsi_options)",nothing!))
> +u_boot_dtsi_pattern_raw = $(eval x=$$(patsubst "%",%,$(i))) \
> +	$(i)=$(if $(x),$(and $(x),$(x) $(if $(u_boot_dtsi_pattern),,not) \
> +	found @ $(u_boot_dtsi_loc)$(basename $(notdir $(x)))-u-boot.dtsi),(undefined)) ||
> +
> +u_boot_dtsi_options_raw = $(strip \
> +	Automatic inclusion \
> +	$(or $(u_boot_dtsi_options),(undefined)) from search: \
> +	$(foreach i,$(value u_boot_dtsi_search),$(u_boot_dtsi_pattern_raw)) \
> +	u-boot.dtsi $(if $(wildcard $(u_boot_dtsi_loc)u-boot.dtsi),,not) \
> +	found @ $(u_boot_dtsi_loc)u-boot.dtsi)
> +

> +endif

And move this endif later down to insert above the 'dtc_cpp_flags  ='...
line, to encompass debugging and avoid adding dtc_cpp_flags with an
invalid generated path.

>  
>  # Uncomment for debugging
>  # This shows all the files that were considered and the one that we chose.
> 
> base-commit: e4c8b32d03d7ecffd586b7d33336603ad639d7c0

Tested at least with starfive_visionfive2_defconfig from v2025.01
(before OF_UPSTREAM) and v2025.07 (adopted OF_UPSTREAM).

-E

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-03  9:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-01  9:44 [PATCH v2] scripts/Makefile.lib: increase detail for dtsi debug output E Shattow
2025-09-03  9:17 ` E Shattow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).