Re: [PATCH v3 1/9] powerpc: build .dtb files in dts directory

From: Rob Herring
Date: Thu Sep 27 2018 - 09:39:45 EST


On Mon, Sep 10, 2018 at 10:04 AM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> Align powerpc with other architectures which build the dtb files in the
> same directory as the dts files. This is also in line with most other
> build targets which are located in the same directory as the source.
> This move will help enable the 'dtbs' target which builds all the dtbs
> regardless of kernel config.
>
> This transition could break some scripts if they expect dtb files in the
> old location.
>
> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> Cc: Paul Mackerras <paulus@xxxxxxxxx>
> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> ---
> v3:
> - Remove duplicate mpc5200 dtbs from image-y targets. The dtb target already
> comes from the cuImage.<platform> target.

Do the PPC folks have any comments on this?

Rob

>
> arch/powerpc/Makefile | 2 +-
> arch/powerpc/boot/Makefile | 55 ++++++++++++++++------------------
> arch/powerpc/boot/dts/Makefile | 1 +
> 3 files changed, 28 insertions(+), 30 deletions(-)
> create mode 100644 arch/powerpc/boot/dts/Makefile
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 11a1acba164a..53ea887eb34e 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -294,7 +294,7 @@ bootwrapper_install:
> $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
>
> %.dtb: scripts
> - $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
> + $(Q)$(MAKE) $(build)=$(boot)/dts $(patsubst %,$(boot)/dts/%,$@)
>
> # Used to create 'merged defconfigs'
> # To use it $(call) it with the first argument as the base defconfig
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index 0fb96c26136f..bca5c23767df 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -304,9 +304,9 @@ image-$(CONFIG_PPC_ADDER875) += cuImage.adder875-uboot \
> dtbImage.adder875-redboot
>
> # Board ports in arch/powerpc/platform/52xx/Kconfig
> -image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200 lite5200.dtb
> -image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200b lite5200b.dtb
> -image-$(CONFIG_PPC_MEDIA5200) += cuImage.media5200 media5200.dtb
> +image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200
> +image-$(CONFIG_PPC_LITE5200) += cuImage.lite5200b
> +image-$(CONFIG_PPC_MEDIA5200) += cuImage.media5200
>
> # Board ports in arch/powerpc/platform/82xx/Kconfig
> image-$(CONFIG_MPC8272_ADS) += cuImage.mpc8272ads
> @@ -381,11 +381,11 @@ $(addprefix $(obj)/, $(sort $(filter zImage.%, $(image-y)))): vmlinux $(wrapperb
> $(call if_changed,wrap,$(subst $(obj)/zImage.,,$@))
>
> # dtbImage% - a dtbImage is a zImage with an embedded device tree blob
> -$(obj)/dtbImage.initrd.%: vmlinux $(wrapperbits) $(obj)/%.dtb FORCE
> - $(call if_changed,wrap,$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
> +$(obj)/dtbImage.initrd.%: vmlinux $(wrapperbits) $(obj)/dts/%.dtb FORCE
> + $(call if_changed,wrap,$*,,$(obj)/dts/$*.dtb,$(obj)/ramdisk.image.gz)
>
> -$(obj)/dtbImage.%: vmlinux $(wrapperbits) $(obj)/%.dtb FORCE
> - $(call if_changed,wrap,$*,,$(obj)/$*.dtb)
> +$(obj)/dtbImage.%: vmlinux $(wrapperbits) $(obj)/dts/%.dtb FORCE
> + $(call if_changed,wrap,$*,,$(obj)/dts/$*.dtb)
>
> # This cannot be in the root of $(src) as the zImage rule always adds a $(obj)
> # prefix
> @@ -395,36 +395,33 @@ $(obj)/vmlinux.strip: vmlinux
> $(obj)/uImage: vmlinux $(wrapperbits) FORCE
> $(call if_changed,wrap,uboot)
>
> -$(obj)/uImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,uboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
> +$(obj)/uImage.initrd.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,uboot-$*,,$(obj)/dts/$*.dtb,$(obj)/ramdisk.image.gz)
>
> -$(obj)/uImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,uboot-$*,,$(obj)/$*.dtb)
> +$(obj)/uImage.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,uboot-$*,,$(obj)/dts/$*.dtb)
>
> -$(obj)/cuImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
> +$(obj)/cuImage.initrd.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,cuboot-$*,,$(obj)/dts/$*.dtb,$(obj)/ramdisk.image.gz)
>
> -$(obj)/cuImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,cuboot-$*,,$(obj)/$*.dtb)
> +$(obj)/cuImage.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,cuboot-$*,,$(obj)/dts/$*.dtb)
>
> -$(obj)/simpleImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,simpleboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
> +$(obj)/simpleImage.initrd.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,simpleboot-$*,,$(obj)/dts/$*.dtb,$(obj)/ramdisk.image.gz)
>
> -$(obj)/simpleImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,simpleboot-$*,,$(obj)/$*.dtb)
> +$(obj)/simpleImage.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,simpleboot-$*,,$(obj)/dts/$*.dtb)
>
> -$(obj)/treeImage.initrd.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb,$(obj)/ramdisk.image.gz)
> +$(obj)/treeImage.initrd.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,treeboot-$*,,$(obj)/dts/$*.dtb,$(obj)/ramdisk.image.gz)
>
> -$(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) FORCE
> - $(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb)
> +$(obj)/treeImage.%: vmlinux $(obj)/dts/%.dtb $(wrapperbits) FORCE
> + $(call if_changed,wrap,treeboot-$*,,$(obj)/dts/$*.dtb)
>
> -# Rule to build device tree blobs
> -$(obj)/%.dtb: $(src)/dts/%.dts FORCE
> - $(call if_changed_dep,dtc)
> -
> -$(obj)/%.dtb: $(src)/dts/fsl/%.dts FORCE
> - $(call if_changed_dep,dtc)
> +# Needed for the above targets to work with dts/fsl/ files
> +$(obj)/dts/%.dtb: $(obj)/dts/fsl/%.dtb
> + @cp $< $@
>
> # If there isn't a platform selected then just strip the vmlinux.
> ifeq (,$(image-y))
> diff --git a/arch/powerpc/boot/dts/Makefile b/arch/powerpc/boot/dts/Makefile
> new file mode 100644
> index 000000000000..f66554cd5c45
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/Makefile
> @@ -0,0 +1 @@
> +# SPDX-License-Identifier: GPL-2.0
> --
> 2.17.1