Message ID | c6dea8f363725c069e26031ec7c7c5f27850103b.1615199908.git.viresh.kumar@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt: Add fdtoverlay rule and statically build unittest | expand |
On Mon, Mar 8, 2021 at 7:45 PM Viresh Kumar <viresh.kumar@linaro.org> wrote: > > From: Rob Herring <robh@kernel.org> > > 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@kernel.org> > Co-developed-by: Viresh Kumar <viresh.kumar@linaro.org> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Masahiro Yamada <masahiroy@kernel.org> > --- > 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 >
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