lkml.org 
[lkml]   [2021]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH V7 6/6] of: unittest: Statically apply overlays using fdtoverlay
    On 03-02-21, 19:54, Rob Herring wrote:
    > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
    > index b00855b247e0..886d2e6c58f0 100644
    > --- a/scripts/Makefile.lib
    > +++ b/scripts/Makefile.lib
    > @@ -66,6 +66,9 @@ multi-used := $(multi-used-y) $(multi-used-m)
    > real-obj-y := $(foreach m, $(obj-y), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-))),$($(m:.o=-objs)) $($(m:.o=-y)),$(m)))
    > real-obj-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)) $($(m:.o=-))),$($(m:.o=-objs)) $($(m:.o=-y)) $($(m:.o=-m)),$(m)))
    >
    > +real-dtb-y := $(foreach m,$(dtb-y), $(if $(strip $($(m:.dtb=-dtbs))),$($(m:.dtb=-dtbs)),))

    Sorry for my lack of knowledge, but what does (m:.dtb=-dtbs) do
    exactly ?

    > +dtb-y += $(real-dtb-y)
    > +
    > always-y += $(always-m)
    >
    > # hostprogs-always-y += foo
    > @@ -332,6 +335,15 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE
    > $(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE
    > $(call if_changed_dep,dtc)
    >
    > +
    > +quiet_cmd_fdtoverlay = DTOVL $@
    > + cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs)
    > +
    > +.SECONDEXPANSION:
    > +
    > +$(obj)/%.dtb: $$(addprefix $$(obj)/,$$(%-dtbs)) FORCE
    > + $(call if_changed,fdtoverlay)
    > +
    > DT_CHECKER ?= dt-validate
    > DT_BINDING_DIR := Documentation/devicetree/bindings
    > # DT_TMP_SCHEMA may be overridden from Documentation/devicetree/bindings/Makefile

    I tried to test a dtbo from arch/ code like this:

    diff --git a/arch/arm64/boot/dts/hisilicon/Makefile b/arch/arm64/boot/dts/hisilicon/Makefile
    index f4d68caeba83..0ee9d7dc8e07 100644
    --- a/arch/arm64/boot/dts/hisilicon/Makefile
    +++ b/arch/arm64/boot/dts/hisilicon/Makefile
    @@ -6,3 +6,8 @@ dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb
    dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb
    dtb-$(CONFIG_ARCH_HISI) += hip06-d03.dtb
    dtb-$(CONFIG_ARCH_HISI) += hip07-d05.dtb
    +
    +DTC_FLAGS_hi3660-hikey960 += -@
    +
    +test1-dtbs := hi3660-hikey960.dtb hi3660-hikey960-overlay.dtbo
    +dtb-y += test1.dtb
    diff --git a/arch/arm64/boot/dts/hisilicon/hi3660-hikey960-overlay.dts b/arch/arm64/boot/dts/hisilicon/hi3660-hikey960-overlay.dts
    new file mode 100644
    index 000000000000..1235a911caae
    --- /dev/null
    +++ b/arch/arm64/boot/dts/hisilicon/hi3660-hikey960-overlay.dts
    @@ -0,0 +1,16 @@
    +// SPDX-License-Identifier: GPL-2.0
    +/dts-v1/;
    +/plugin/;
    +
    +&dwmmc2 {
    + #address-cells = <0x1>;
    + #size-cells = <0x0>;
    +
    + wlcore2: wlcore@5 {
    + compatible = "ti,wl1837";
    + reg = <2>;
    + interrupt-parent = <&gpio22>;
    + interrupts = <3 1>;
    + test = <1>;
    + };
    +};
    Even after your patch there are some issues I am facing:

    1. dtbs_check doesn't test hi3660-hikey960-overlay.dts. I also tried
    to add it to dtbo-y +=, but that didn't do anything as well.

    I expected this to work as we have this in scripts/Makefile.lib:

    ifneq ($(CHECK_DTBS),)
    extra-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y))
    +extra-y += $(patsubst %.dtbo,%.dt.yaml, $(dtb-y))
    extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-))
    +extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtbo,%.dt.yaml, $(dtb-))
    endif


    2. This fails dtbs_check as it tries to run it for the source file of
    test1.dtb

    $ make ARCH=arm64 O=../barm64/ -j8 CROSS_COMPILE=aarch64-linux-gnu- dtbs_check
    make[1]: Entering directory '/mnt/ssd/all/work/repos/devel/barm64'
    make[3]: *** No rule to make target 'arch/arm64/boot/dts/hisilicon/test1.dt.yaml', needed by '__build'. Stop.
    /mnt/ssd/all/work/repos/devel/linux/scripts/Makefile.build:496: recipe for target 'arch/arm64/boot/dts/hisilicon' failed
    make[2]: *** [arch/arm64/boot/dts/hisilicon] Error 2
    make[2]: *** Waiting for unfinished jobs....
    /mnt/ssd/all/work/repos/devel/linux/Makefile:1345: recipe for target 'dtbs' failed
    make[1]: *** [dtbs] Error 2
    make[1]: Leaving directory '/mnt/ssd/all/work/repos/devel/barm64'
    Makefile:185: recipe for target '__sub-make' failed
    make: *** [__sub-make] Error 2
    I am not sure how to fix this.

    --
    viresh

    \
     
     \ /
      Last update: 2021-02-08 12:36    [W:3.551 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site