Re: [PATCH] kbuild: verify dtoverlay files against schema
From: Dmitry Baryshkov
Date: Tue May 28 2024 - 09:21:49 EST
On Tue, 28 May 2024 at 16:15, Rob Herring <robh@xxxxxxxxxx> wrote:
>
> On Mon, May 27, 2024 at 6:34 AM Dmitry Baryshkov
> <dmitry.baryshkov@xxxxxxxxxx> wrote:
> >
> > Currently only the single part device trees are validated against DT
> > schema. For the multipart schema files only the first file is validated.
>
> What do you mean by multipart schema files? Did you mean multipart DTs
> (i.e. base plus overlays)?
Yes, multipart DT files, dts + dtso => dtb + dtbo => final dtb
>
> Looks good otherwise and I can fix that up.
Awesome, thanks!
>
> > Extend the fdtoverlay commands to validate the resulting DTB file
> > against schema.
> >
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> > ---
> > scripts/Makefile.lib | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> > index 9f06f6aaf7fc..29da0dc9776d 100644
> > --- a/scripts/Makefile.lib
> > +++ b/scripts/Makefile.lib
> > @@ -407,8 +407,15 @@ cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ;
> > -d $(depfile).dtc.tmp $(dtc-tmp) ; \
> > cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)
> >
> > +DT_CHECK_CMD = $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA)
> > +
> > +ifneq ($(CHECK_DTBS),)
> > +quiet_cmd_fdtoverlay = DTOVLCH $@
> > + cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs) ; $(DT_CHECK_CMD) $@ || true
> > +else
> > quiet_cmd_fdtoverlay = DTOVL $@
> > cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs)
> > +endif
> >
> > $(multi-dtb-y): FORCE
> > $(call if_changed,fdtoverlay)
> > @@ -421,7 +428,7 @@ DT_BINDING_DIR := Documentation/devicetree/bindings
> > DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.json
> >
> > quiet_cmd_dtb = DTC_CHK $@
> > - cmd_dtb = $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
> > + cmd_dtb = $(cmd_dtc) ; $(DT_CHECK_CMD) $@ || true
> > else
> > quiet_cmd_dtb = $(quiet_cmd_dtc)
> > cmd_dtb = $(cmd_dtc)
> >
> > ---
> > base-commit: 8314289a8d50a4e05d8ece1ae0445a3b57bb4d3b
> > change-id: 20240527-dtbo-check-schema-4f695cb98de5
> >
> > Best regards,
> > --
> > Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> >
--
With best wishes
Dmitry