diff mbox series

u-boot-tools: drop yaml in DT validation

Message ID 20260429171723.167639-1-joaomarcos.costa@bootlin.com
State New
Headers show
Series u-boot-tools: drop yaml in DT validation | expand

Commit Message

Joao Marcos Costa April 29, 2026, 5:17 p.m. UTC
Since yamltree was dropped from upstream dtc (i.e., in Linux), a patch was
sent to U-Boot to backport the corresponding changes.

Apply this patch in u-boot's sources.

Overall, this fixes the build-time issues with DTC (and so in
u-boot-tools).

Considering libyaml is no longer used, the dependency on libyaml-native can be
dropped as well (thus reverting the change below):

02e09e036e: u-boot-tools: Add dependency on libyaml for dtschema validation

Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
---
 ...ripts-dtc-drop-yaml-in-DT-validation.patch | 85 +++++++++++++++++++
 meta/recipes-bsp/u-boot/u-boot-tools.inc      |  2 +-
 meta/recipes-bsp/u-boot/u-boot_2026.04.bb     |  1 +
 3 files changed, 87 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-bsp/u-boot/files/0001-scripts-dtc-drop-yaml-in-DT-validation.patch

Comments

Fabio Estevam April 29, 2026, 7:20 p.m. UTC | #1
Hi João,

On Wed, Apr 29, 2026 at 2:17 PM João Marcos Costa
<joaomarcos.costa@bootlin.com> wrote:
>
> Since yamltree was dropped from upstream dtc (i.e., in Linux), a patch was
> sent to U-Boot to backport the corresponding changes.
>
> Apply this patch in u-boot's sources.
>
> Overall, this fixes the build-time issues with DTC (and so in
> u-boot-tools).
>
> Considering libyaml is no longer used, the dependency on libyaml-native can be
> dropped as well (thus reverting the change below):
>
> 02e09e036e: u-boot-tools: Add dependency on libyaml for dtschema validation
>
> Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>

Thanks for addressing this:

Reviewed-by: Fabio Estevam <festevam@gmail.com>
Joao Marcos Costa April 30, 2026, 12:15 p.m. UTC | #2
Bom dia, Fabio :)

On 4/29/26 21:20, Fabio Estevam wrote:
> Hi João,
> 
> On Wed, Apr 29, 2026 at 2:17 PM João Marcos Costa
> <joaomarcos.costa@bootlin.com> wrote:
>>
>> Since yamltree was dropped from upstream dtc (i.e., in Linux), a patch was
>> sent to U-Boot to backport the corresponding changes.
>>
>> Apply this patch in u-boot's sources.
>>
>> Overall, this fixes the build-time issues with DTC (and so in
>> u-boot-tools).
>>
>> Considering libyaml is no longer used, the dependency on libyaml-native can be
>> dropped as well (thus reverting the change below):
>>
>> 02e09e036e: u-boot-tools: Add dependency on libyaml for dtschema validation
>>
>> Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
> 
> Thanks for addressing this:
> 
> Reviewed-by: Fabio Estevam <festevam@gmail.com>

Sure, my pleasure!
diff mbox series

Patch

diff --git a/meta/recipes-bsp/u-boot/files/0001-scripts-dtc-drop-yaml-in-DT-validation.patch b/meta/recipes-bsp/u-boot/files/0001-scripts-dtc-drop-yaml-in-DT-validation.patch
new file mode 100644
index 0000000000..4913366102
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/0001-scripts-dtc-drop-yaml-in-DT-validation.patch
@@ -0,0 +1,85 @@ 
+From e77402000f978561ff2afe405aa9e5c9037a8717 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jo=C3=A3o=20Marcos=20Costa?= <joaomarcos.costa@bootlin.com>
+Date: Wed, 29 Apr 2026 15:22:25 +0200
+Subject: [PATCH] scripts/dtc: drop yaml in DT validation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The build issues found in dtc/yamltree were partially mitigated by a
+previous commit (807bcd844a: "scripts/dtc: Fix pkg-config behavior under
+sysroot"), but upstream dtc simply disabled yaml, and the same should be
+done here in order to permanently avoid those issues.
+
+Backport the change below from Linux v5.18 [1]:
+
+ef8795f3f1c ("dt-bindings: kbuild: Use DTB files for validation")
+
+I tested this patch with a couple Yocto builds: u-boot and u-boot-tools,
+using the current master branch (rev. "c53b0708f9"), having removed
+libyaml-native from u-boot-tools's dependencies.
+
+[1] https://git.kernel.org/linus/ef8795f3f1ce
+
+Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
+
+Upstream-Status: Submitted [https://lore.kernel.org/u-boot/20260429144615.142350-1-joaomarcos.costa@bootlin.com/]
+---
+ scripts/Makefile.lib             | 6 ------
+ scripts/dtc/Makefile             | 8 --------
+ scripts/dtc/update-dtc-source.sh | 2 +-
+ 3 files changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
+index b8969b7de54..d66f1ed13b1 100644
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -86,12 +86,6 @@ base-dtb-y := $(foreach m, $(multi-dtb-y), $(firstword $(call suffix-search, $m,
+ extra-y				+= $(dtb-y)
+ extra-$(CONFIG_OF_ALL_DTBS)	+= $(dtb-)
+ 
+-# U-Boot specific
+-ifneq ($(CHECK_DTBS),)
+-extra-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y))
+-extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-))
+-endif
+-
+ # Add subdir path
+ 
+ extra-y		:= $(addprefix $(obj)/,$(extra-y))
+diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
+index 6f309b37e08..2ba8dba03be 100644
+--- a/scripts/dtc/Makefile
++++ b/scripts/dtc/Makefile
+@@ -17,15 +17,7 @@ fdtoverlay-objs	:= $(libfdt) fdtoverlay.o util.o
+ # Source files need to get at the userspace version of libfdt_env.h to compile
+ HOST_EXTRACFLAGS := -I$(srctree)/$(src)/libfdt
+ 
+-ifeq ($(wildcard $(PKG_CONFIG_SYSROOT_DIR)/usr/include/yaml.h),)
+ HOST_EXTRACFLAGS += -DNO_YAML
+-else
+-dtc-objs	+= yamltree.o
+-# To include <yaml.h> installed in a non-default path
+-HOSTCFLAGS_yamltree.o := $(shell pkg-config --cflags yaml-0.1)
+-# To link libyaml installed in a non-default path
+-HOSTLDLIBS_dtc	:= $(shell pkg-config --libs yaml-0.1)
+-endif
+ 
+ # Generated files need one more search path to include headers in source tree
+ HOSTCFLAGS_dtc-lexer.lex.o := -I$(src)
+diff --git a/scripts/dtc/update-dtc-source.sh b/scripts/dtc/update-dtc-source.sh
+index 32ff17ffd08..94627541533 100755
+--- a/scripts/dtc/update-dtc-source.sh
++++ b/scripts/dtc/update-dtc-source.sh
+@@ -32,7 +32,7 @@ DTC_UPSTREAM_PATH=`pwd`/../dtc
+ DTC_LINUX_PATH=`pwd`/scripts/dtc
+ 
+ DTC_SOURCE="checks.c data.c dtc.c dtc.h flattree.c fstree.c livetree.c srcpos.c \
+-		srcpos.h treesource.c util.c util.h version_gen.h yamltree.c \
++		srcpos.h treesource.c util.c util.h version_gen.h \
+ 		dtc-lexer.l dtc-parser.y"
+ LIBFDT_SOURCE="fdt.c fdt.h fdt_addresses.c fdt_empty_tree.c \
+ 		fdt_overlay.c fdt_ro.c fdt_rw.c fdt_strerror.c fdt_sw.c \
+-- 
+2.47.0
+
diff --git a/meta/recipes-bsp/u-boot/u-boot-tools.inc b/meta/recipes-bsp/u-boot/u-boot-tools.inc
index a055409c2c..4e4f7fa092 100644
--- a/meta/recipes-bsp/u-boot/u-boot-tools.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-tools.inc
@@ -1,5 +1,5 @@ 
 SUMMARY = "U-Boot bootloader tools"
-DEPENDS += "gnutls openssl util-linux swig-native libyaml-native"
+DEPENDS += "gnutls openssl util-linux swig-native"
 
 inherit python3native
 export STAGING_INCDIR = "${STAGING_INCDIR_NATIVE}"
diff --git a/meta/recipes-bsp/u-boot/u-boot_2026.04.bb b/meta/recipes-bsp/u-boot/u-boot_2026.04.bb
index 5259fd5832..9f09d91daa 100644
--- a/meta/recipes-bsp/u-boot/u-boot_2026.04.bb
+++ b/meta/recipes-bsp/u-boot/u-boot_2026.04.bb
@@ -14,6 +14,7 @@  SRC_URI_RISCV = "\
     ${@bb.utils.contains    ("TUNE_FEATURES", "d",      "file://u-boot-riscv-isa_d.cfg", "", d)} \
     ${@bb.utils.contains_any("TUNE_FEATURES", "b zbb",  "file://u-boot-riscv-isa_zbb.cfg", "", d)} \
     ${@bb.utils.contains    ("TUNE_FEATURES", "zicbom", "file://u-boot-riscv-isa_zicbom.cfg", "", d)} \
+    file://0001-scripts-dtc-drop-yaml-in-DT-validation.patch \
     "
 
 SRC_URI:append:riscv32 = "${SRC_URI_RISCV}"