* [PATCH v2 00/13] Enable building all dtb files
@ 2015-10-08 17:53 Rob Herring
2015-10-08 17:53 ` [PATCH v2 12/13] powerpc: enable building of all dtbs Rob Herring
0 siblings, 1 reply; 4+ messages in thread
From: Rob Herring @ 2015-10-08 17:53 UTC (permalink / raw)
To: devicetree, linux-kernel
Cc: Grant Likely, Frank Rowand, Ian Campbell, Geert Uytterhoeven,
Olof Johansson, Chris Zankel, Max Filippov, linux-xtensa,
Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
linuxppc-dev, Ley Foon Tan, nios2-dev, Ralf Baechle, linux-mips,
James Hogan, linux-metag, Yoshinori Sato, uclinux-h8-devel,
Russell King, Catalin Marinas, Will Deacon, linux-arm-kernel,
Vineet Gupta, arm
This series enables building all the dtb files in the kernel mostly
independent of the kernel config. The option is only dependent on
COMPILE_TEST, OF, and the new OF_ALL_DTBS options. This ensures that
allyesconfig builds can build all dtb files although most arches have to
build "dtbs" target explicitly. Some arches like ARM include dtbs in the
default target.
Arch/arm-soc maintainers, Please ack and I will take this series via the DT
tree.
v2:
- Add OF_ALL_DTBS option hidden behind COMPILE_TEST
- Expand to all architectures (with more than 1 dtb)
Rob
Rob Herring (13):
of: add config option to enable building of all dtbs
arc: use common make variables for dtb builds
arc: enable building of all dtbs
arm: enable building of all dtbs
arm64: enable building of all dtbs
h8300: enable building of all dtbs
metag: use common make variables for dtb builds
metag: enable building of all dtbs
mips: enable building of all dtbs
nios2: use common make variables for dtb builds
nios2: enable building of all dtbs
powerpc: enable building of all dtbs
xtensa: enable building of all dtbs
arch/arc/Makefile | 2 +-
arch/arc/boot/dts/Makefile | 6 ++++--
arch/arm/boot/dts/Makefile | 3 +++
arch/arm64/boot/dts/Makefile | 6 ++++++
arch/h8300/boot/dts/Makefile | 3 +++
arch/metag/Makefile | 2 +-
arch/metag/boot/dts/Makefile | 7 +++----
arch/mips/boot/dts/Makefile | 3 +++
arch/nios2/Makefile | 10 +++++-----
arch/nios2/boot/Makefile | 13 +++----------
arch/nios2/boot/dts/Makefile | 6 ++++++
arch/powerpc/Makefile | 6 ++++++
arch/powerpc/boot/Makefile | 5 ++++-
arch/powerpc/boot/dts/Makefile | 5 +++++
arch/xtensa/Makefile | 4 ++++
arch/xtensa/boot/dts/Makefile | 7 ++++++-
drivers/of/Kconfig | 10 ++++++++++
17 files changed, 73 insertions(+), 25 deletions(-)
create mode 100644 arch/nios2/boot/dts/Makefile
create mode 100644 arch/powerpc/boot/dts/Makefile
--
2.1.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 12/13] powerpc: enable building of all dtbs
2015-10-08 17:53 [PATCH v2 00/13] Enable building all dtb files Rob Herring
@ 2015-10-08 17:53 ` Rob Herring
2015-10-12 10:26 ` Michael Ellerman
0 siblings, 1 reply; 4+ messages in thread
From: Rob Herring @ 2015-10-08 17:53 UTC (permalink / raw)
To: devicetree, linux-kernel
Cc: Grant Likely, Frank Rowand, Ian Campbell, Geert Uytterhoeven,
Olof Johansson, Benjamin Herrenschmidt, Paul Mackerras,
Michael Ellerman, linuxppc-dev
Enable building all dtb files when CONFIG_OF_ALL_DTBS is enabled. The dtbs
are not really dependent on a platform being enabled or any other kernel
config, so for testing coverage it is convenient to build all of the dtbs.
This builds all dts files in the tree, not just targets listed.
Supporting this requires adding 'dtbs' make target which was not yet
supported on powerpc.
Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@lists.ozlabs.org
---
arch/powerpc/Makefile | 6 ++++++
arch/powerpc/boot/Makefile | 5 ++++-
arch/powerpc/boot/dts/Makefile | 5 +++++
3 files changed, 15 insertions(+), 1 deletion(-)
create mode 100644 arch/powerpc/boot/dts/Makefile
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index b9b4af2..0ec35ff 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -273,6 +273,11 @@ bootwrapper_install:
%.dtb: scripts
$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
+PHONY += dtbs
+
+dtbs: prepare scripts
+ $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot)/dts
+
# Used to create 'merged defconfigs'
# To use it $(call) it with the first argument as the base defconfig
# and the second argument as a space separated list of .config files to merge,
@@ -317,6 +322,7 @@ define archhelp
@echo ' dtbImage.<dt> - zImage with an embedded device tree blob'
@echo ' simpleImage.<dt> - Firmware independent image.'
@echo ' treeImage.<dt> - Support for older IBM 4xx firmware (not U-Boot)'
+ echo ' dtbs - Build device tree blobs for enabled boards'
@echo ' install - Install kernel using'
@echo ' (your) ~/bin/$(INSTALLKERNEL) or'
@echo ' (distribution) /sbin/$(INSTALLKERNEL) or'
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 4eec430..381df1a 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -402,7 +402,7 @@ zInstall: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
zImage.miboot zImage.pmac zImage.pseries \
- zImage.maple simpleImage.* otheros.bld *.dtb
+ zImage.maple simpleImage.* otheros.bld
# clean up files cached by wrapper
clean-kernel := vmlinux.strip vmlinux.bin
@@ -410,6 +410,9 @@ clean-kernel += $(addsuffix .gz,$(clean-kernel))
# If not absolute clean-files are relative to $(obj).
clean-files += $(addprefix $(objtree)/, $(clean-kernel))
+# Let clean descend into subdirs
+subdir- := dts
+
WRAPPER_OBJDIR := /usr/lib/kernel-wrapper
WRAPPER_DTSDIR := /usr/lib/kernel-wrapper/dts
WRAPPER_BINDIR := /usr/sbin
diff --git a/arch/powerpc/boot/dts/Makefile b/arch/powerpc/boot/dts/Makefile
new file mode 100644
index 0000000..f121775
--- /dev/null
+++ b/arch/powerpc/boot/dts/Makefile
@@ -0,0 +1,5 @@
+dtstree := $(srctree)/$(src)
+dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
+
+always := $(dtb-y)
+clean-files := *.dtb
--
2.1.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 12/13] powerpc: enable building of all dtbs
2015-10-08 17:53 ` [PATCH v2 12/13] powerpc: enable building of all dtbs Rob Herring
@ 2015-10-12 10:26 ` Michael Ellerman
2015-10-13 15:24 ` Rob Herring
0 siblings, 1 reply; 4+ messages in thread
From: Michael Ellerman @ 2015-10-12 10:26 UTC (permalink / raw)
To: Rob Herring
Cc: devicetree, linux-kernel, Grant Likely, Frank Rowand,
Ian Campbell, Geert Uytterhoeven, Olof Johansson,
Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev
On Thu, 2015-10-08 at 12:53 -0500, Rob Herring wrote:
> Enable building all dtb files when CONFIG_OF_ALL_DTBS is enabled. The dtbs
> are not really dependent on a platform being enabled or any other kernel
> config, so for testing coverage it is convenient to build all of the dtbs.
> This builds all dts files in the tree, not just targets listed.
>
> Supporting this requires adding 'dtbs' make target which was not yet
> supported on powerpc.
I'm not entirely clear why we want this? It just means we can test build all
the dts regardless of what kernel config we are building?
Have you tested the powerpc build with this applied or do you want me to?
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index b9b4af2..0ec35ff 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -273,6 +273,11 @@ bootwrapper_install:
> %.dtb: scripts
> $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
>
> +PHONY += dtbs
> +
> +dtbs: prepare scripts
> + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot)/dts
The ARCH should be powerpc, I guess you just copied the one above.
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index 4eec430..381df1a 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -402,7 +402,7 @@ zInstall: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
> clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
> zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
> zImage.miboot zImage.pmac zImage.pseries \
> - zImage.maple simpleImage.* otheros.bld *.dtb
> + zImage.maple simpleImage.* otheros.bld
This looks like we used to clean *.dtb in the current dir but now we don't? But
I'm probably just not understanding how clean-files works.
> @@ -410,6 +410,9 @@ clean-kernel += $(addsuffix .gz,$(clean-kernel))
> # If not absolute clean-files are relative to $(obj).
> clean-files += $(addprefix $(objtree)/, $(clean-kernel))
>
> +# Let clean descend into subdirs
> +subdir- := dts
> +
> WRAPPER_OBJDIR := /usr/lib/kernel-wrapper
> WRAPPER_DTSDIR := /usr/lib/kernel-wrapper/dts
> WRAPPER_BINDIR := /usr/sbin
> diff --git a/arch/powerpc/boot/dts/Makefile b/arch/powerpc/boot/dts/Makefile
> new file mode 100644
> index 0000000..f121775
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/Makefile
> @@ -0,0 +1,5 @@
> +dtstree := $(srctree)/$(src)
> +dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
> +
> +always := $(dtb-y)
How/is that different from just doing the more normal:
obj-$(CONFIG_OF_ALL_DTBS) := ...
?
cheers
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 12/13] powerpc: enable building of all dtbs
2015-10-12 10:26 ` Michael Ellerman
@ 2015-10-13 15:24 ` Rob Herring
0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2015-10-13 15:24 UTC (permalink / raw)
To: Michael Ellerman
Cc: Rob Herring, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, Grant Likely, Frank Rowand,
Ian Campbell, Geert Uytterhoeven, Olof Johansson,
Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev
On Mon, Oct 12, 2015 at 5:26 AM, Michael Ellerman <mpe@ellerman.id.au> wrote:
> On Thu, 2015-10-08 at 12:53 -0500, Rob Herring wrote:
>> Enable building all dtb files when CONFIG_OF_ALL_DTBS is enabled. The dtbs
>> are not really dependent on a platform being enabled or any other kernel
>> config, so for testing coverage it is convenient to build all of the dtbs.
>> This builds all dts files in the tree, not just targets listed.
>>
>> Supporting this requires adding 'dtbs' make target which was not yet
>> supported on powerpc.
>
> I'm not entirely clear why we want this? It just means we can test build all
> the dts regardless of what kernel config we are building?
Yes. Given that I haven't found any that didn't build, that alone is
probably not so important. There's also an effort to move DT binding
docs to YAML, and I'm using dtc to dump out binding information to
automatically populate the binding docs hence I need to build all.
Eventually, we also plan to use the binding docs to validate dts
files.
> Have you tested the powerpc build with this applied or do you want me to?
Yes, I've tested powerpc.
>
>> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>> index b9b4af2..0ec35ff 100644
>> --- a/arch/powerpc/Makefile
>> +++ b/arch/powerpc/Makefile
>> @@ -273,6 +273,11 @@ bootwrapper_install:
>> %.dtb: scripts
>> $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
>>
>> +PHONY += dtbs
>> +
>> +dtbs: prepare scripts
>> + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot)/dts
>
> The ARCH should be powerpc, I guess you just copied the one above.
Okay, I'll drop it (it should already be set).
>
>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
>> index 4eec430..381df1a 100644
>> --- a/arch/powerpc/boot/Makefile
>> +++ b/arch/powerpc/boot/Makefile
>> @@ -402,7 +402,7 @@ zInstall: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
>> clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
>> zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
>> zImage.miboot zImage.pmac zImage.pseries \
>> - zImage.maple simpleImage.* otheros.bld *.dtb
>> + zImage.maple simpleImage.* otheros.bld
>
> This looks like we used to clean *.dtb in the current dir but now we don't? But
> I'm probably just not understanding how clean-files works.
dtbs target is building in boot/dts. I just noticed that %.dtb targets
(or dtbImage.% targets) still build in boot/. I need to move them to
boot/dts/ as well to align with all other arches. This clean should
probably stay so dtbs get cleaned in either location.
>
>> @@ -410,6 +410,9 @@ clean-kernel += $(addsuffix .gz,$(clean-kernel))
>> # If not absolute clean-files are relative to $(obj).
>> clean-files += $(addprefix $(objtree)/, $(clean-kernel))
>>
>> +# Let clean descend into subdirs
>> +subdir- := dts
>> +
>> WRAPPER_OBJDIR := /usr/lib/kernel-wrapper
>> WRAPPER_DTSDIR := /usr/lib/kernel-wrapper/dts
>> WRAPPER_BINDIR := /usr/sbin
>> diff --git a/arch/powerpc/boot/dts/Makefile b/arch/powerpc/boot/dts/Makefile
>> new file mode 100644
>> index 0000000..f121775
>> --- /dev/null
>> +++ b/arch/powerpc/boot/dts/Makefile
>> @@ -0,0 +1,5 @@
>> +dtstree := $(srctree)/$(src)
>> +dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))
>> +
>> +always := $(dtb-y)
>
> How/is that different from just doing the more normal:
>
> obj-$(CONFIG_OF_ALL_DTBS) := ...
>
> ?
obj-y will build the dtb into the kernel which some arches do and not
what we want here.
Rob
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-13 15:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-08 17:53 [PATCH v2 00/13] Enable building all dtb files Rob Herring
2015-10-08 17:53 ` [PATCH v2 12/13] powerpc: enable building of all dtbs Rob Herring
2015-10-12 10:26 ` Michael Ellerman
2015-10-13 15:24 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).