mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH v2 0/2] Run DT schema check on selected device trees
@ 2026-08-31 13:11 Bruno Thomsen
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema Bruno Thomsen
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 2/2] kernel: validate device trees against the DT schema Bruno Thomsen
  0 siblings, 2 replies; 6+ messages in thread
From: Bruno Thomsen @ 2026-08-31 13:11 UTC (permalink / raw)
  To: ptxdist; +Cc: Bruno Thomsen

During development of new boards or preparation of upstream patches
it can be very useful to run dt-schema check on device trees.

Tested with the following PTXCONF values:

PTXCONF_KERNEL_DTS_PATH="${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts/ti/omap"
PTXCONF_KERNEL_DTS="am335x-emperor.dts am335x-emperor-mini.dts"

Bruno Thomsen (2):
  host-system-python3: add dtschema
  kernel: validate device trees against the DT schema

 platforms/kernel.in                 | 25 ++++++++++++++++++++++
 rules/host-system-python3.in        |  4 ++++
 rules/host-system-python3.make      |  9 ++++++++
 rules/kernel.make                   |  7 +++++++
 rules/post/ptxd_make_world_dtb.make |  1 +
 scripts/lib/ptxd_make_world_dtb.sh  | 32 +++++++++++++++++++++++++++++
 6 files changed, 78 insertions(+)


base-commit: deecb91874f09aa7e6258ba94509ade70c8b41ba
-- 
2.55.0




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

* [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema
  2026-08-31 13:11 [ptxdist] [PATCH v2 0/2] Run DT schema check on selected device trees Bruno Thomsen
@ 2026-08-31 13:11 ` Bruno Thomsen
  2026-09-04  7:17   ` Michael Olbrich
  2026-09-18  9:02   ` [ptxdist] [APPLIED] " Michael Olbrich
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 2/2] kernel: validate device trees against the DT schema Bruno Thomsen
  1 sibling, 2 replies; 6+ messages in thread
From: Bruno Thomsen @ 2026-08-31 13:11 UTC (permalink / raw)
  To: ptxdist; +Cc: Bruno Thomsen

Used for device tree validation.

Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
---
v1 -> v2 changed:
- host-system-python{,3}
---
 rules/host-system-python3.in   | 4 ++++
 rules/host-system-python3.make | 9 +++++++++
 2 files changed, 13 insertions(+)

diff --git a/rules/host-system-python3.in b/rules/host-system-python3.in
index 4d6ea7d1d..2d8296852 100644
--- a/rules/host-system-python3.in
+++ b/rules/host-system-python3.in
@@ -15,6 +15,10 @@ config HOST_SYSTEM_PYTHON3_CRYPTOGRAPHY
 config HOST_SYSTEM_PYTHON3_DEV
 	bool
 
+config HOST_SYSTEM_PYTHON3_DTSCHEMA
+	select HOST_SYSTEM_PYTHON3_SYSTEM_PACKAGES
+	bool
+
 config HOST_SYSTEM_PYTHON3_NUMPY
 	select HOST_SYSTEM_PYTHON3_SYSTEM_PACKAGES
 	bool
diff --git a/rules/host-system-python3.make b/rules/host-system-python3.make
index 6de4466d0..8923acfd6 100644
--- a/rules/host-system-python3.make
+++ b/rules/host-system-python3.make
@@ -42,6 +42,15 @@ ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DEV
 		ptxd_bailout "Python development files module not found! \
 	Please install python3-dev (debian)";
 endif
+ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DTSCHEMA
+	@echo "Checking for Python dtschema ..."
+	@$(SYSTEMPYTHON3) -c 'import dtschema' 2>/dev/null || \
+		ptxd_bailout "Python dtschema module not found! \
+	Please install python3-dtschema (debian)";
+	@dt-validate --version >/dev/null 2>&1 || \
+		ptxd_bailout "'dt-validate' not found in PATH! \
+	Please install python3-dtschema (debian)";
+endif
 ifdef PTXCONF_HOST_SYSTEM_PYTHON3_NUMPY
 	@echo "Checking for Python Numpy ..."
 	@$(SYSTEMPYTHON3) -c 'import numpy' 2>/dev/null || \
-- 
2.55.0




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

* [ptxdist] [PATCH v2 2/2] kernel: validate device trees against the DT schema
  2026-08-31 13:11 [ptxdist] [PATCH v2 0/2] Run DT schema check on selected device trees Bruno Thomsen
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema Bruno Thomsen
@ 2026-08-31 13:11 ` Bruno Thomsen
  2026-09-18  9:02   ` [ptxdist] [APPLIED] " Michael Olbrich
  1 sibling, 1 reply; 6+ messages in thread
From: Bruno Thomsen @ 2026-08-31 13:11 UTC (permalink / raw)
  To: ptxdist; +Cc: Bruno Thomsen

Make it possible to do device tree validation on
dts/dtsi during development and preparation for
upstream.

Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
---
v1 -> v2 changed:
- Move complexity from kernel.make to ptxd_make_world_dtb
- KERNEL_DTB_CHECK_OPT conditional on KERNEL_DTB_CHECK
- Move KERNEL_DTB_CHECK inside 'if KERNEL_DTB'
- Clarify in help that schema problems are warnings
---
 platforms/kernel.in                 | 25 ++++++++++++++++++++++
 rules/kernel.make                   |  7 +++++++
 rules/post/ptxd_make_world_dtb.make |  1 +
 scripts/lib/ptxd_make_world_dtb.sh  | 32 +++++++++++++++++++++++++++++
 4 files changed, 65 insertions(+)

diff --git a/platforms/kernel.in b/platforms/kernel.in
index 2c6d906e8..36a4f3cf0 100644
--- a/platforms/kernel.in
+++ b/platforms/kernel.in
@@ -11,6 +11,8 @@ menuconfig KERNEL
 	select HOST_LZ4			if KERNEL_LZ4
 	select HOST_LIBKMOD		if KERNEL_MODULES
 	select HOST_SYSTEM_BC
+	select HOST_SYSTEM_PYTHON3	if KERNEL_DTB_CHECK
+	select HOST_SYSTEM_PYTHON3_DTSCHEMA	if KERNEL_DTB_CHECK
 	select HOST_OPENSSL		if KERNEL_OPENSSL
 	select HOST_LIBELF		if KERNEL_LIBELF
 	select HOST_BINDGEN_CLI		if KERNEL_RUST
@@ -200,6 +202,29 @@ config KERNEL_DTS
 	  is used as a search path for the device tree files specified
 	  here. Multiple dts files can be specified, separated by spaces.
 
+config KERNEL_DTB_CHECK
+	bool
+	prompt "validate device trees against the DT schema"
+	help
+	  Additionally build the device trees with the kernel build system
+	  ('make CHECK_DTBS=y <board>.dtb') to validate them against the
+	  device tree bindings in Documentation/devicetree/bindings.
+	  Schema problems are reported as warnings, so they do not break
+	  the build.
+
+	  This requires the 'dtschema' python package on the build host and
+	  it noticeably increases the build time of the kernel, because the
+	  schema of all bindings must be processed first.
+
+	  Only device trees that are part of the kernel tree can be checked,
+	  because the make targets are relative to arch/<arch>/boot/dts.
+	  Each file in KERNEL_DTS is looked up in KERNEL_DTS_PATH and the
+	  first match inside the kernel tree is validated. Device trees
+	  without such a match are skipped with a warning. So for device
+	  trees in a vendor directory, that directory must be part of
+	  KERNEL_DTS_PATH, e.g.
+	  "${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts/ti/omap".
+
 config KERNEL_DTS_SUPPORT_OVERLAYS
 	bool
 
diff --git a/rules/kernel.make b/rules/kernel.make
index af0dd3913..d32a0443c 100644
--- a/rules/kernel.make
+++ b/rules/kernel.make
@@ -282,6 +282,13 @@ KERNEL_INSTALL_OPT = \
 	$(KERNEL_BASE_OPT) \
 	modules_install
 
+ifdef PTXCONF_KERNEL_DTB_CHECK
+# validate the device trees while building them in world/dtb
+KERNEL_DTB_CHECK_OPT	= \
+	$(KERNEL_SHARED_OPT) \
+	CHECK_DTBS=y
+endif
+
 $(STATEDIR)/kernel.install:
 	@$(call targetinfo)
 ifdef PTXCONF_KERNEL_MODULES_INSTALL
diff --git a/rules/post/ptxd_make_world_dtb.make b/rules/post/ptxd_make_world_dtb.make
index 37468c0be..81b237a87 100644
--- a/rules/post/ptxd_make_world_dtb.make
+++ b/rules/post/ptxd_make_world_dtb.make
@@ -10,6 +10,7 @@ world/dtb/env = \
 	$(call world/env, $(1)) \
 	pkg_dts_path="$($(1)_DTS_PATH)" \
 	pkg_dts="$($(1)_DTS)" \
+	pkg_dtb_check_opt="$(call ptx/escape,$($(1)_DTB_CHECK_OPT))" \
 	pkg_arch="$(GENERIC_KERNEL_ARCH)"
 
 world/dtb = \
diff --git a/scripts/lib/ptxd_make_world_dtb.sh b/scripts/lib/ptxd_make_world_dtb.sh
index dea9268ff..22622b2ad 100644
--- a/scripts/lib/ptxd_make_world_dtb.sh
+++ b/scripts/lib/ptxd_make_world_dtb.sh
@@ -109,10 +109,13 @@ export -f ptxd_make_world_dtbo
 
 ptxd_make_world_dtb() {
     local dtb_deps_target dtb_source dtb_target
+    local dts_file dts_in_tree dtb_check_dtstree
+    local -a dtb_check_targets=()
 
     ptxd_make_world_init || return
 
     dtb_deps_target="${ptx_state_dir}/${pkg_stamp}"
+    dtb_check_dtstree="${pkg_kernel_dir:-${pkg_dir}}/arch/${pkg_arch}/boot/dts"
 
     echo -e "\nBuilding device trees..."
 
@@ -128,7 +131,36 @@ ptxd_make_world_dtb() {
 	dtb_source="${ptxd_reply}"
 	dtb_target="${pkg_pkg_dir}/boot/$(basename ${dts_dts/%.dts/.dtb})"
 
+	#
+	# The dtb targets of the kernel build system are relative to
+	# arch/<arch>/boot/dts, so only device trees from the kernel tree
+	# can be validated.
+	#
+	if [ -n "${pkg_dtb_check_opt}" ]; then
+	    dts_file=""
+	    for dts_in_tree in "${ptxd_reply[@]}"; do
+		if [ "${dts_in_tree}" != "${dts_in_tree#${dtb_check_dtstree}/}" ]; then
+		    dts_file="${dts_in_tree#${dtb_check_dtstree}/}"
+		    break
+		fi
+	    done
+	    if [ -n "${dts_file}" ]; then
+		dtb_check_targets[${#dtb_check_targets[@]}]="${dts_file/%.dts/.dtb}"
+	    else
+		ptxd_warning "Device tree '${dts_dts}' is not part of the kernel tree. Skipping validation."
+	    fi
+	fi
+
 	ptxd_make_dtb || break
     done
+
+    if [ ${#dtb_check_targets[@]} -ne 0 ]; then
+	echo -e "\nValidating device trees..."
+	ptxd_eval \
+	    "${MAKE}" \
+	    "${pkg_dtb_check_opt}" \
+	    "${dtb_check_targets[@]}" ||
+	ptxd_bailout "Unable to validate device trees."
+    fi
 }
 export -f ptxd_make_world_dtb
-- 
2.55.0




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

* Re: [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema Bruno Thomsen
@ 2026-09-04  7:17   ` Michael Olbrich
  2026-09-18  9:02   ` [ptxdist] [APPLIED] " Michael Olbrich
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Olbrich @ 2026-09-04  7:17 UTC (permalink / raw)
  To: Bruno Thomsen; +Cc: ptxdist

On Mon, Aug 31, 2026 at 03:11:58PM +0200, Bruno Thomsen wrote:
> Used for device tree validation.
> 
> Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> ---
> v1 -> v2 changed:
> - host-system-python{,3}
> ---
>  rules/host-system-python3.in   | 4 ++++
>  rules/host-system-python3.make | 9 +++++++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/rules/host-system-python3.in b/rules/host-system-python3.in
> index 4d6ea7d1d..2d8296852 100644
> --- a/rules/host-system-python3.in
> +++ b/rules/host-system-python3.in
> @@ -15,6 +15,10 @@ config HOST_SYSTEM_PYTHON3_CRYPTOGRAPHY
>  config HOST_SYSTEM_PYTHON3_DEV
>  	bool
>  
> +config HOST_SYSTEM_PYTHON3_DTSCHEMA
> +	select HOST_SYSTEM_PYTHON3_SYSTEM_PACKAGES
> +	bool
> +
>  config HOST_SYSTEM_PYTHON3_NUMPY
>  	select HOST_SYSTEM_PYTHON3_SYSTEM_PACKAGES
>  	bool
> diff --git a/rules/host-system-python3.make b/rules/host-system-python3.make
> index 6de4466d0..8923acfd6 100644
> --- a/rules/host-system-python3.make
> +++ b/rules/host-system-python3.make
> @@ -42,6 +42,15 @@ ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DEV
>  		ptxd_bailout "Python development files module not found! \
>  	Please install python3-dev (debian)";
>  endif
> +ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DTSCHEMA
> +	@echo "Checking for Python dtschema ..."
> +	@$(SYSTEMPYTHON3) -c 'import dtschema' 2>/dev/null || \
> +		ptxd_bailout "Python dtschema module not found! \
> +	Please install python3-dtschema (debian)";
> +	@dt-validate --version >/dev/null 2>&1 || \
> +		ptxd_bailout "'dt-validate' not found in PATH! \
> +	Please install python3-dtschema (debian)";

The Debian package is dt-schema. I'll fix it while applying the patch.

Michael

> +endif
>  ifdef PTXCONF_HOST_SYSTEM_PYTHON3_NUMPY
>  	@echo "Checking for Python Numpy ..."
>  	@$(SYSTEMPYTHON3) -c 'import numpy' 2>/dev/null || \
> -- 
> 2.55.0
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



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

* Re: [ptxdist] [APPLIED] host-system-python3: add dtschema
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema Bruno Thomsen
  2026-09-04  7:17   ` Michael Olbrich
@ 2026-09-18  9:02   ` Michael Olbrich
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Olbrich @ 2026-09-18  9:02 UTC (permalink / raw)
  To: ptxdist; +Cc: Bruno Thomsen

Thanks, applied as 6ddce8bb2697a0067750ae065fda669f45e6d8ff.

Michael

[sent from post-receive hook]

On Fri, 18 Sep 2026 11:02:04 +0200, Bruno Thomsen <bruno.thomsen@gmail.com> wrote:
> Used for device tree validation.
> 
> Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> Message-Id: <20260831131159.11771-2-bruno.thomsen@gmail.com>
> [mol: fix Debian package name]
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/rules/host-system-python3.in b/rules/host-system-python3.in
> index 4d6ea7d1d673..2d8296852979 100644
> --- a/rules/host-system-python3.in
> +++ b/rules/host-system-python3.in
> @@ -15,6 +15,10 @@ config HOST_SYSTEM_PYTHON3_CRYPTOGRAPHY
>  config HOST_SYSTEM_PYTHON3_DEV
>  	bool
>  
> +config HOST_SYSTEM_PYTHON3_DTSCHEMA
> +	select HOST_SYSTEM_PYTHON3_SYSTEM_PACKAGES
> +	bool
> +
>  config HOST_SYSTEM_PYTHON3_NUMPY
>  	select HOST_SYSTEM_PYTHON3_SYSTEM_PACKAGES
>  	bool
> diff --git a/rules/host-system-python3.make b/rules/host-system-python3.make
> index 6de4466d0551..e90289b28757 100644
> --- a/rules/host-system-python3.make
> +++ b/rules/host-system-python3.make
> @@ -42,6 +42,15 @@ ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DEV
>  		ptxd_bailout "Python development files module not found! \
>  	Please install python3-dev (debian)";
>  endif
> +ifdef PTXCONF_HOST_SYSTEM_PYTHON3_DTSCHEMA
> +	@echo "Checking for Python dtschema ..."
> +	@$(SYSTEMPYTHON3) -c 'import dtschema' 2>/dev/null || \
> +		ptxd_bailout "Python dtschema module not found! \
> +	Please install dt-schema (debian)";
> +	@dt-validate --version >/dev/null 2>&1 || \
> +		ptxd_bailout "'dt-validate' not found in PATH! \
> +	Please install dt-schema (debian)";
> +endif
>  ifdef PTXCONF_HOST_SYSTEM_PYTHON3_NUMPY
>  	@echo "Checking for Python Numpy ..."
>  	@$(SYSTEMPYTHON3) -c 'import numpy' 2>/dev/null || \



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

* Re: [ptxdist] [APPLIED] kernel: validate device trees against the DT schema
  2026-08-31 13:11 ` [ptxdist] [PATCH v2 2/2] kernel: validate device trees against the DT schema Bruno Thomsen
@ 2026-09-18  9:02   ` Michael Olbrich
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Olbrich @ 2026-09-18  9:02 UTC (permalink / raw)
  To: ptxdist; +Cc: Bruno Thomsen

Thanks, applied as 1a3fb66e36d4112238c9219cca47f56874668d6e.

Michael

[sent from post-receive hook]

On Fri, 18 Sep 2026 11:02:05 +0200, Bruno Thomsen <bruno.thomsen@gmail.com> wrote:
> Make it possible to do device tree validation on
> dts/dtsi during development and preparation for
> upstream.
> 
> Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
> Message-Id: <20260831131159.11771-3-bruno.thomsen@gmail.com>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/platforms/kernel.in b/platforms/kernel.in
> index 2c6d906e8bae..36a4f3cf0162 100644
> --- a/platforms/kernel.in
> +++ b/platforms/kernel.in
> @@ -11,6 +11,8 @@ menuconfig KERNEL
>  	select HOST_LZ4			if KERNEL_LZ4
>  	select HOST_LIBKMOD		if KERNEL_MODULES
>  	select HOST_SYSTEM_BC
> +	select HOST_SYSTEM_PYTHON3	if KERNEL_DTB_CHECK
> +	select HOST_SYSTEM_PYTHON3_DTSCHEMA	if KERNEL_DTB_CHECK
>  	select HOST_OPENSSL		if KERNEL_OPENSSL
>  	select HOST_LIBELF		if KERNEL_LIBELF
>  	select HOST_BINDGEN_CLI		if KERNEL_RUST
> @@ -200,6 +202,29 @@ config KERNEL_DTS
>  	  is used as a search path for the device tree files specified
>  	  here. Multiple dts files can be specified, separated by spaces.
>  
> +config KERNEL_DTB_CHECK
> +	bool
> +	prompt "validate device trees against the DT schema"
> +	help
> +	  Additionally build the device trees with the kernel build system
> +	  ('make CHECK_DTBS=y <board>.dtb') to validate them against the
> +	  device tree bindings in Documentation/devicetree/bindings.
> +	  Schema problems are reported as warnings, so they do not break
> +	  the build.
> +
> +	  This requires the 'dtschema' python package on the build host and
> +	  it noticeably increases the build time of the kernel, because the
> +	  schema of all bindings must be processed first.
> +
> +	  Only device trees that are part of the kernel tree can be checked,
> +	  because the make targets are relative to arch/<arch>/boot/dts.
> +	  Each file in KERNEL_DTS is looked up in KERNEL_DTS_PATH and the
> +	  first match inside the kernel tree is validated. Device trees
> +	  without such a match are skipped with a warning. So for device
> +	  trees in a vendor directory, that directory must be part of
> +	  KERNEL_DTS_PATH, e.g.
> +	  "${KERNEL_DIR}/arch/${GENERIC_KERNEL_ARCH}/boot/dts/ti/omap".
> +
>  config KERNEL_DTS_SUPPORT_OVERLAYS
>  	bool
>  
> diff --git a/rules/kernel.make b/rules/kernel.make
> index af0dd3913faf..d32a0443c7f0 100644
> --- a/rules/kernel.make
> +++ b/rules/kernel.make
> @@ -282,6 +282,13 @@ KERNEL_INSTALL_OPT = \
>  	$(KERNEL_BASE_OPT) \
>  	modules_install
>  
> +ifdef PTXCONF_KERNEL_DTB_CHECK
> +# validate the device trees while building them in world/dtb
> +KERNEL_DTB_CHECK_OPT	= \
> +	$(KERNEL_SHARED_OPT) \
> +	CHECK_DTBS=y
> +endif
> +
>  $(STATEDIR)/kernel.install:
>  	@$(call targetinfo)
>  ifdef PTXCONF_KERNEL_MODULES_INSTALL
> diff --git a/rules/post/ptxd_make_world_dtb.make b/rules/post/ptxd_make_world_dtb.make
> index 37468c0bea94..81b237a872ec 100644
> --- a/rules/post/ptxd_make_world_dtb.make
> +++ b/rules/post/ptxd_make_world_dtb.make
> @@ -10,6 +10,7 @@ world/dtb/env = \
>  	$(call world/env, $(1)) \
>  	pkg_dts_path="$($(1)_DTS_PATH)" \
>  	pkg_dts="$($(1)_DTS)" \
> +	pkg_dtb_check_opt="$(call ptx/escape,$($(1)_DTB_CHECK_OPT))" \
>  	pkg_arch="$(GENERIC_KERNEL_ARCH)"
>  
>  world/dtb = \
> diff --git a/scripts/lib/ptxd_make_world_dtb.sh b/scripts/lib/ptxd_make_world_dtb.sh
> index dea9268ff5ef..22622b2adbe2 100644
> --- a/scripts/lib/ptxd_make_world_dtb.sh
> +++ b/scripts/lib/ptxd_make_world_dtb.sh
> @@ -109,10 +109,13 @@ export -f ptxd_make_world_dtbo
>  
>  ptxd_make_world_dtb() {
>      local dtb_deps_target dtb_source dtb_target
> +    local dts_file dts_in_tree dtb_check_dtstree
> +    local -a dtb_check_targets=()
>  
>      ptxd_make_world_init || return
>  
>      dtb_deps_target="${ptx_state_dir}/${pkg_stamp}"
> +    dtb_check_dtstree="${pkg_kernel_dir:-${pkg_dir}}/arch/${pkg_arch}/boot/dts"
>  
>      echo -e "\nBuilding device trees..."
>  
> @@ -128,7 +131,36 @@ ptxd_make_world_dtb() {
>  	dtb_source="${ptxd_reply}"
>  	dtb_target="${pkg_pkg_dir}/boot/$(basename ${dts_dts/%.dts/.dtb})"
>  
> +	#
> +	# The dtb targets of the kernel build system are relative to
> +	# arch/<arch>/boot/dts, so only device trees from the kernel tree
> +	# can be validated.
> +	#
> +	if [ -n "${pkg_dtb_check_opt}" ]; then
> +	    dts_file=""
> +	    for dts_in_tree in "${ptxd_reply[@]}"; do
> +		if [ "${dts_in_tree}" != "${dts_in_tree#${dtb_check_dtstree}/}" ]; then
> +		    dts_file="${dts_in_tree#${dtb_check_dtstree}/}"
> +		    break
> +		fi
> +	    done
> +	    if [ -n "${dts_file}" ]; then
> +		dtb_check_targets[${#dtb_check_targets[@]}]="${dts_file/%.dts/.dtb}"
> +	    else
> +		ptxd_warning "Device tree '${dts_dts}' is not part of the kernel tree. Skipping validation."
> +	    fi
> +	fi
> +
>  	ptxd_make_dtb || break
>      done
> +
> +    if [ ${#dtb_check_targets[@]} -ne 0 ]; then
> +	echo -e "\nValidating device trees..."
> +	ptxd_eval \
> +	    "${MAKE}" \
> +	    "${pkg_dtb_check_opt}" \
> +	    "${dtb_check_targets[@]}" ||
> +	ptxd_bailout "Unable to validate device trees."
> +    fi
>  }
>  export -f ptxd_make_world_dtb



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

end of thread, other threads:[~2026-09-18  9:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-31 13:11 [ptxdist] [PATCH v2 0/2] Run DT schema check on selected device trees Bruno Thomsen
2026-08-31 13:11 ` [ptxdist] [PATCH v2 1/2] host-system-python3: add dtschema Bruno Thomsen
2026-09-04  7:17   ` Michael Olbrich
2026-09-18  9:02   ` [ptxdist] [APPLIED] " Michael Olbrich
2026-08-31 13:11 ` [ptxdist] [PATCH v2 2/2] kernel: validate device trees against the DT schema Bruno Thomsen
2026-09-18  9:02   ` [ptxdist] [APPLIED] " Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox