On Mon, Mar 8, 2021 at 7:45 PM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote: > > From: Rob Herring <robh@xxxxxxxxxx> > > Add a generic rule to apply fdtoverlay in Makefile.lib, so every > platform doesn't need to carry the complex rule. This also automatically > adds "DTC_FLAGS_foo_base += -@" for all base files. > > The platform's Makefile only needs to have this now: > > foo-dtbs := foo_base.dtb foo_overlay1.dtbo foo_overlay2.dtbo > dtb-y := foo.dtb > > We don't want to run schema checks on foo.dtb (as foo.dts doesn't exist) > and the Makefile is updated accordingly. > > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > Co-developed-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> Acked-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- > scripts/Makefile.lib | 26 ++++++++++++++++++++++++-- > 1 file changed, 24 insertions(+), 2 deletions(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index a2658242d956..bc045a54a34e 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -75,11 +75,24 @@ always-y += $(userprogs-always-y) $(userprogs-always-m) > # If CONFIG_OF_ALL_DTBS is enabled, all DT blobs are built > dtb-$(CONFIG_OF_ALL_DTBS) += $(dtb-) > > +# List all dtbs to be generated by fdtoverlay > +overlay-y := $(foreach m,$(dtb-y), $(if $(strip $($(m:.dtb=-dtbs))),$(m),)) > + > +# Generate symbols for the base files so overlays can be applied to them. > +$(foreach m,$(overlay-y), $(eval DTC_FLAGS_$(basename $(firstword $($(m:.dtb=-dtbs)))) += -@)) > + > +# Add base dtb and overlay dtbo > +dtb-y += $(foreach m,$(overlay-y), $($(m:.dtb=-dtbs))) > + > always-y += $(dtb-y) > > ifneq ($(CHECK_DTBS),) > -always-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y)) > -always-y += $(patsubst %.dtbo,%.dt.yaml, $(dtb-y)) > +# Don't run schema checks for dtbs created by fdtoverlay as they don't > +# have corresponding dts files. > +dt-yaml-y := $(filter-out $(overlay-y),$(dtb-y)) > + > +always-y += $(patsubst %.dtb,%.dt.yaml, $(dt-yaml-y)) > +always-y += $(patsubst %.dtbo,%.dt.yaml, $(dt-yaml-y)) > endif > > # Add subdir path > @@ -337,6 +350,15 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE > $(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE > $(call if_changed_dep,dtc) > > +overlay-y := $(addprefix $(obj)/, $(overlay-y)) > + > +quiet_cmd_fdtoverlay = DTOVL $@ > + cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs) > + > +$(overlay-y): FORCE > + $(call if_changed,fdtoverlay) > +$(call multi_depend, $(overlay-y), .dtb, -dtbs) > + > DT_CHECKER ?= dt-validate > DT_BINDING_DIR := Documentation/devicetree/bindings > # DT_TMP_SCHEMA may be overridden from Documentation/devicetree/bindings/Makefile > -- > 2.25.0.rc1.19.g042ed3e048af > -- Best Regards Masahiro Yamada