linux-kbuild.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs
@ 2014-09-05  6:48 Robert Richter
  2014-09-05  6:48 ` [PATCH 1/6] dts, arm64: Add dtbs_install make target Robert Richter
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

For arm64 we want to put dts files into vendor's subdirectories from
the beginning. This patch set implements this. As this is a generic
kbuild implementation, vendor subdirs will be also available for
arch/arm and other architectures. The subdirectory tree is also
reflected in the install path.

A new makefile variable dts-dirs is introduced to point to dts
subdirs. This variable is used by kbuild for building and installation
of dtb files.

A dts Makefile looks now as follows:

----
dtb-$(CONFIG_...) += some_file_1.dtb
dtb-$(CONFIG_...) += some_file_2.dtb

dts-dirs          += dir_vendor_a
dts-dirs          += dir_vendor_b

# come always afterwards:
always         := $(dtb-y)
subdir-y       := $(dts-dirs)
clean-files    := *.dtb
----

This patches also introduces the dtbs_install make target for
arm64. Install rules are moved to Makefile.dtbinst using the same
style and calling convention like for modinst and fwinst.

Robert Richter (6):
  dts, arm64: Add dtbs_install make target
  dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
  dts, arm/arm64: Remove dtbs build rules in sub-makes
  dts, kbuild: Implement support for dtb vendor subdirs
  dts, arm64: Move dts files to vendor subdirs
  dts, arm: Remove $(MACHINE) variable from dtbs make recipes

 arch/arm/Makefile                                |   8 +-
 arch/arm/boot/dts/Makefile                       |  12 +-
 arch/arm64/Makefile                              |  10 +-
 arch/arm64/boot/dts/Makefile                     |  13 +-
 arch/arm64/boot/dts/apm-mustang.dts              |  34 --
 arch/arm64/boot/dts/apm-storm.dtsi               | 425 -----------------------
 arch/arm64/boot/dts/apm/Makefile                 |   5 +
 arch/arm64/boot/dts/apm/apm-mustang.dts          |  34 ++
 arch/arm64/boot/dts/apm/apm-storm.dtsi           | 425 +++++++++++++++++++++++
 arch/arm64/boot/dts/arm/Makefile                 |   6 +
 arch/arm64/boot/dts/arm/foundation-v8.dts        | 232 +++++++++++++
 arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts       | 159 +++++++++
 arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 240 +++++++++++++
 arch/arm64/boot/dts/foundation-v8.dts            | 232 -------------
 arch/arm64/boot/dts/rtsm_ve-aemv8a.dts           | 159 ---------
 arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi     | 240 -------------
 scripts/Kbuild.include                           |   6 +
 scripts/Makefile.dtbinst                         |  51 +++
 scripts/Makefile.lib                             |  12 -
 19 files changed, 1179 insertions(+), 1124 deletions(-)
 delete mode 100644 arch/arm64/boot/dts/apm-mustang.dts
 delete mode 100644 arch/arm64/boot/dts/apm-storm.dtsi
 create mode 100644 arch/arm64/boot/dts/apm/Makefile
 create mode 100644 arch/arm64/boot/dts/apm/apm-mustang.dts
 create mode 100644 arch/arm64/boot/dts/apm/apm-storm.dtsi
 create mode 100644 arch/arm64/boot/dts/arm/Makefile
 create mode 100644 arch/arm64/boot/dts/arm/foundation-v8.dts
 create mode 100644 arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
 create mode 100644 arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
 delete mode 100644 arch/arm64/boot/dts/foundation-v8.dts
 delete mode 100644 arch/arm64/boot/dts/rtsm_ve-aemv8a.dts
 delete mode 100644 arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi
 create mode 100644 scripts/Makefile.dtbinst

-- 
2.0.1


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 1/6] dts, arm64: Add dtbs_install make target
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
@ 2014-09-05  6:48 ` Robert Richter
  2014-09-05  6:48 ` [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst Robert Richter
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

This adds the dtbs_install make target to arm64. The target has been
introduced already to arch/arm with the following commit:

 f4d4ffc03efc kbuild: dtbs_install: new make target

Implementation for arm64 is the same as for arm.

With 'dtbs_install' all config enabled dtb files are installed to
either the INSTALL_DTBS_PATH directory or the default location:

 $INSTALL_PATH/dtbs/$KERNELRELEASE

Signed-off-by: Robert Richter <rrichter@cavium.com>
---
 arch/arm64/Makefile          | 6 ++++--
 arch/arm64/boot/dts/Makefile | 4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 2df5e5daeebe..e0a8292bc832 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -71,8 +71,9 @@ zinstall install: vmlinux
 %.dtb: scripts
 	$(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
 
-dtbs: scripts
-	$(Q)$(MAKE) $(build)=$(boot)/dts dtbs
+PHONY += dtbs dtbs_install
+dtbs dtbs_install: prepare scripts
+	$(Q)$(MAKE) $(build)=$(boot)/dts $@
 
 PHONY += vdso_install
 vdso_install:
@@ -86,6 +87,7 @@ define archhelp
   echo  '* Image.gz      - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)'
   echo  '  Image         - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
   echo  '* dtbs          - Build device tree blobs for enabled boards'
+  echo  '  dtbs_install  - Install dtbs to $(INSTALL_DTBS_PATH)'
   echo  '  install       - Install uncompressed kernel'
   echo  '  zinstall      - Install compressed kernel'
   echo  '                  Install using (your) ~/bin/installkernel or'
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index c52bdb051f66..82e1c4cf8780 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -1,9 +1,11 @@
 dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
 
-targets += dtbs
+targets += dtbs dtbs_install
 targets += $(dtb-y)
 
 dtbs: $(addprefix $(obj)/, $(dtb-y))
 
 clean-files := *.dtb
+
+dtbs_install: $(addsuffix _dtbinst_, $(dtb-y))
-- 
2.0.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
  2014-09-05  6:48 ` [PATCH 1/6] dts, arm64: Add dtbs_install make target Robert Richter
@ 2014-09-05  6:48 ` Robert Richter
  2014-09-05 12:48   ` Rob Herring
  2014-09-05  6:48 ` [PATCH 3/6] dts, arm/arm64: Remove dtbs build rules in sub-makes Robert Richter
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

Move dtbs install rules to Makefile.dtbinst. This change is needed to
implement support for dts vendor subdirs. The change makes Makefiles
easier and smaller as no longer the dtbs_install rule needs to be
defined. Another advantage is that install goals are not encoded in
targets anymore (%.dtb_dtbinst_).

Signed-off-by: Robert Richter <rrichter@cavium.com>
---
 arch/arm/Makefile            |  6 +++++-
 arch/arm/boot/dts/Makefile   |  2 --
 arch/arm64/Makefile          |  6 +++++-
 arch/arm64/boot/dts/Makefile |  2 --
 scripts/Kbuild.include       |  6 ++++++
 scripts/Makefile.dtbinst     | 38 ++++++++++++++++++++++++++++++++++++++
 scripts/Makefile.lib         | 12 ------------
 7 files changed, 54 insertions(+), 18 deletions(-)
 create mode 100644 scripts/Makefile.dtbinst

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 0ce9d0f71f2a..1963d9a9a2c4 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -313,9 +313,13 @@ $(BOOT_TARGETS): vmlinux
 	$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
 
 PHONY += dtbs dtbs_install
-dtbs dtbs_install: prepare scripts
+
+dtbs: prepare scripts
 	$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@
 
+dtbs_install:
+	$(Q)$(MAKE) $(dtbinst)=$(boot)/dts MACHINE=$(MACHINE)
+
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b8c5cd3ddeb9..ab40afb87fb2 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -502,5 +502,3 @@ dtbs: $(addprefix $(obj)/, $(dtb-y))
 	$(Q)rm -f $(obj)/../*.dtb
 
 clean-files := *.dtb
-
-dtbs_install: $(addsuffix _dtbinst_, $(dtb-y))
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index e0a8292bc832..1627861e9bbd 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -72,9 +72,13 @@ zinstall install: vmlinux
 	$(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
 
 PHONY += dtbs dtbs_install
-dtbs dtbs_install: prepare scripts
+
+dtbs: prepare scripts
 	$(Q)$(MAKE) $(build)=$(boot)/dts $@
 
+dtbs_install:
+	$(Q)$(MAKE) $(dtbinst)=$(boot)/dts
+
 PHONY += vdso_install
 vdso_install:
 	$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index 82e1c4cf8780..0a14c3828301 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -7,5 +7,3 @@ targets += $(dtb-y)
 dtbs: $(addprefix $(obj)/, $(dtb-y))
 
 clean-files := *.dtb
-
-dtbs_install: $(addsuffix _dtbinst_, $(dtb-y))
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 8a9a4e1c7eab..861f5b4d48a2 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -179,6 +179,12 @@ build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
 # $(Q)$(MAKE) $(modbuiltin)=dir
 modbuiltin := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.modbuiltin obj
 
+###
+# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.dtbinst obj=
+# Usage:
+# $(Q)$(MAKE) $(dtbinst)=dir
+dtbinst := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.dtbinst obj
+
 # Prefix -I with $(srctree) if it is not an absolute path.
 # skip if -I has no parameter
 addtree = $(if $(patsubst -I%,%,$(1)), \
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
new file mode 100644
index 000000000000..54286cccc289
--- /dev/null
+++ b/scripts/Makefile.dtbinst
@@ -0,0 +1,38 @@
+# ==========================================================================
+# Installing dtb files
+#
+# Installs all dtb files listed in $(dtb-y) either in the
+# INSTALL_DTBS_PATH directory or the default location:
+#
+#   $INSTALL_PATH/dtbs/$KERNELRELEASE
+#
+# ==========================================================================
+
+src := $(obj)
+
+PHONY := __dtbs_install
+__dtbs_install:
+
+include include/config/auto.conf
+include scripts/Kbuild.include
+include $(srctree)/$(obj)/Makefile
+
+PHONY += __dtbs_install_prep
+__dtbs_install_prep:
+	$(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
+	$(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
+	$(Q)mkdir -p $(INSTALL_DTBS_PATH)
+
+dtbinst-files	:= $(dtb-y)
+
+# Helper targets for Installing DTBs into the boot directory
+quiet_cmd_dtb_install =	INSTALL $<
+      cmd_dtb_install =	cp $< $(2)
+
+$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep
+	$(call cmd,dtb_install,$(INSTALL_DTBS_PATH))
+
+PHONY += $(dtbinst-files)
+__dtbs_install: $(dtbinst-files)
+
+.PHONY: $(PHONY)
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 260bf8acfce9..83a453794266 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -274,18 +274,6 @@ $(obj)/%.dtb: $(src)/%.dts FORCE
 
 dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)
 
-# Helper targets for Installing DTBs into the boot directory
-quiet_cmd_dtb_install =	INSTALL $<
-      cmd_dtb_install =	cp $< $(2)
-
-_dtbinst_pre_:
-	$(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
-	$(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
-	$(Q)mkdir -p $(INSTALL_DTBS_PATH)
-
-%.dtb_dtbinst_: $(obj)/%.dtb _dtbinst_pre_
-	$(call cmd,dtb_install,$(INSTALL_DTBS_PATH))
-
 # Bzip2
 # ---------------------------------------------------------------------------
 
-- 
2.0.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 3/6] dts, arm/arm64: Remove dtbs build rules in sub-makes
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
  2014-09-05  6:48 ` [PATCH 1/6] dts, arm64: Add dtbs_install make target Robert Richter
  2014-09-05  6:48 ` [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst Robert Richter
@ 2014-09-05  6:48 ` Robert Richter
  2014-09-05  6:48 ` [PATCH 4/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

Add dtb files to build targets and let kbuild handle them. Thus,
special dtbs rules can be removed. This eases Makefiles and the
implementation of the support of vendor dtb subdirectories.

Signed-off-by: Robert Richter <rrichter@cavium.com>
---
 arch/arm/Makefile            |  2 +-
 arch/arm/boot/dts/Makefile   | 10 ++--------
 arch/arm64/Makefile          |  2 +-
 arch/arm64/boot/dts/Makefile |  8 ++------
 4 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 1963d9a9a2c4..4d13c6d0a0cc 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -315,7 +315,7 @@ $(BOOT_TARGETS): vmlinux
 PHONY += dtbs dtbs_install
 
 dtbs: prepare scripts
-	$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@
+	$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE)
 
 dtbs_install:
 	$(Q)$(MAKE) $(dtbinst)=$(boot)/dts MACHINE=$(MACHINE)
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index ab40afb87fb2..cb63c515247c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -492,13 +492,7 @@ dtb-$(CONFIG_MACH_DOVE) += dove-cm-a510.dtb \
 	dove-d3plug.dtb \
 	dove-dove-db.dtb
 
-targets += dtbs dtbs_install
-targets += $(dtb-y)
 endif
 
-# *.dtb used to be generated in the directory above. Clean out the
-# old build results so people don't accidentally use them.
-dtbs: $(addprefix $(obj)/, $(dtb-y))
-	$(Q)rm -f $(obj)/../*.dtb
-
-clean-files := *.dtb
+always		:= $(dtb-y)
+clean-files	:= *.dtb
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 1627861e9bbd..c21b21d6e72d 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -74,7 +74,7 @@ zinstall install: vmlinux
 PHONY += dtbs dtbs_install
 
 dtbs: prepare scripts
-	$(Q)$(MAKE) $(build)=$(boot)/dts $@
+	$(Q)$(MAKE) $(build)=$(boot)/dts
 
 dtbs_install:
 	$(Q)$(MAKE) $(dtbinst)=$(boot)/dts
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index 0a14c3828301..d116da5f2f20 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -1,9 +1,5 @@
 dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
 
-targets += dtbs dtbs_install
-targets += $(dtb-y)
-
-dtbs: $(addprefix $(obj)/, $(dtb-y))
-
-clean-files := *.dtb
+always		:= $(dtb-y)
+clean-files	:= *.dtb
-- 
2.0.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 4/6] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
                   ` (2 preceding siblings ...)
  2014-09-05  6:48 ` [PATCH 3/6] dts, arm/arm64: Remove dtbs build rules in sub-makes Robert Richter
@ 2014-09-05  6:48 ` Robert Richter
  2014-09-05  6:48 ` [PATCH 5/6] dts, arm64: Move dts files to " Robert Richter
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

This patch adds support of vendor sub directories for dtb files.
Subdirectories can be specified in $(dts-dirs). Kbuild traverses over
all directories while building and installing dtb files. The directory
tree is also reflected in the install path.

Signed-off-by: Robert Richter <rrichter@cavium.com>
---
 arch/arm64/boot/dts/Makefile |  1 +
 scripts/Makefile.dtbinst     | 23 ++++++++++++++++++-----
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index d116da5f2f20..9b8622532068 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -2,4 +2,5 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
 
 always		:= $(dtb-y)
+subdir-y	:= $(dts-dirs)
 clean-files	:= *.dtb
diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
index 54286cccc289..909ed7a2ac61 100644
--- a/scripts/Makefile.dtbinst
+++ b/scripts/Makefile.dtbinst
@@ -6,6 +6,7 @@
 #
 #   $INSTALL_PATH/dtbs/$KERNELRELEASE
 #
+# Traverse through subdirectories listed in $(dts-dirs).
 # ==========================================================================
 
 src := $(obj)
@@ -13,26 +14,38 @@ src := $(obj)
 PHONY := __dtbs_install
 __dtbs_install:
 
+export dtbinst-root ?= $(obj)
+
 include include/config/auto.conf
 include scripts/Kbuild.include
 include $(srctree)/$(obj)/Makefile
 
 PHONY += __dtbs_install_prep
 __dtbs_install_prep:
+ifeq ("$(dtbinst-root)", "$(obj)")
 	$(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
 	$(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
 	$(Q)mkdir -p $(INSTALL_DTBS_PATH)
+endif
 
 dtbinst-files	:= $(dtb-y)
+dtbinst-dirs	:= $(dts-dirs)
 
 # Helper targets for Installing DTBs into the boot directory
 quiet_cmd_dtb_install =	INSTALL $<
-      cmd_dtb_install =	cp $< $(2)
+      cmd_dtb_install =	mkdir -p $(2); cp $< $(2)
+
+install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
+
+$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
+
+$(dtbinst-files): %.dtb: $(obj)/%.dtb
+	$(call cmd,dtb_install,$(install-dir))
 
-$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep
-	$(call cmd,dtb_install,$(INSTALL_DTBS_PATH))
+$(dtbinst-dirs):
+	$(Q)$(MAKE) $(dtbinst)=$(obj)/$@
 
-PHONY += $(dtbinst-files)
-__dtbs_install: $(dtbinst-files)
+PHONY += $(dtbinst-files) $(dtbinst-dirs)
+__dtbs_install: $(dtbinst-files) $(dtbinst-dirs)
 
 .PHONY: $(PHONY)
-- 
2.0.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 5/6] dts, arm64: Move dts files to vendor subdirs
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
                   ` (3 preceding siblings ...)
  2014-09-05  6:48 ` [PATCH 4/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
@ 2014-09-05  6:48 ` Robert Richter
  2014-09-05 12:46   ` Rob Herring
  2014-09-05  6:48 ` [PATCH 6/6] dts, arm: Remove $(MACHINE) variable from dtbs make recipes Robert Richter
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

Moving dts files to vendor subdirs.

Signed-off-by: Robert Richter <rrichter@cavium.com>
---
 arch/arm64/boot/dts/Makefile                     |   4 +-
 arch/arm64/boot/dts/apm-mustang.dts              |  34 --
 arch/arm64/boot/dts/apm-storm.dtsi               | 425 -----------------------
 arch/arm64/boot/dts/apm/Makefile                 |   5 +
 arch/arm64/boot/dts/apm/apm-mustang.dts          |  34 ++
 arch/arm64/boot/dts/apm/apm-storm.dtsi           | 425 +++++++++++++++++++++++
 arch/arm64/boot/dts/arm/Makefile                 |   6 +
 arch/arm64/boot/dts/arm/foundation-v8.dts        | 232 +++++++++++++
 arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts       | 159 +++++++++
 arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 240 +++++++++++++
 arch/arm64/boot/dts/foundation-v8.dts            | 232 -------------
 arch/arm64/boot/dts/rtsm_ve-aemv8a.dts           | 159 ---------
 arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi     | 240 -------------
 13 files changed, 1103 insertions(+), 1092 deletions(-)
 delete mode 100644 arch/arm64/boot/dts/apm-mustang.dts
 delete mode 100644 arch/arm64/boot/dts/apm-storm.dtsi
 create mode 100644 arch/arm64/boot/dts/apm/Makefile
 create mode 100644 arch/arm64/boot/dts/apm/apm-mustang.dts
 create mode 100644 arch/arm64/boot/dts/apm/apm-storm.dtsi
 create mode 100644 arch/arm64/boot/dts/arm/Makefile
 create mode 100644 arch/arm64/boot/dts/arm/foundation-v8.dts
 create mode 100644 arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
 create mode 100644 arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
 delete mode 100644 arch/arm64/boot/dts/foundation-v8.dts
 delete mode 100644 arch/arm64/boot/dts/rtsm_ve-aemv8a.dts
 delete mode 100644 arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi

diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
index 9b8622532068..309c3dc4bb70 100644
--- a/arch/arm64/boot/dts/Makefile
+++ b/arch/arm64/boot/dts/Makefile
@@ -1,5 +1,5 @@
-dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb foundation-v8.dtb
-dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
+dts-dirs += apm
+dts-dirs += arm
 
 always		:= $(dtb-y)
 subdir-y	:= $(dts-dirs)
diff --git a/arch/arm64/boot/dts/apm-mustang.dts b/arch/arm64/boot/dts/apm-mustang.dts
deleted file mode 100644
index b2f56229aa5e..000000000000
--- a/arch/arm64/boot/dts/apm-mustang.dts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * dts file for AppliedMicro (APM) Mustang Board
- *
- * Copyright (C) 2013, Applied Micro Circuits Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- */
-
-/dts-v1/;
-
-/include/ "apm-storm.dtsi"
-
-/ {
-	model = "APM X-Gene Mustang board";
-	compatible = "apm,mustang", "apm,xgene-storm";
-
-	chosen { };
-
-	memory {
-		device_type = "memory";
-		reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
-	};
-};
-
-&serial0 {
-	status = "ok";
-};
-
-&menet {
-	status = "ok";
-};
diff --git a/arch/arm64/boot/dts/apm-storm.dtsi b/arch/arm64/boot/dts/apm-storm.dtsi
deleted file mode 100644
index c0aceef7f5b3..000000000000
--- a/arch/arm64/boot/dts/apm-storm.dtsi
+++ /dev/null
@@ -1,425 +0,0 @@
-/*
- * dts file for AppliedMicro (APM) X-Gene Storm SOC
- *
- * Copyright (C) 2013, Applied Micro Circuits Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- */
-
-/ {
-	compatible = "apm,xgene-storm";
-	interrupt-parent = <&gic>;
-	#address-cells = <2>;
-	#size-cells = <2>;
-
-	cpus {
-		#address-cells = <2>;
-		#size-cells = <0>;
-
-		cpu@000 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x000>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@001 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x001>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@100 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x100>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@101 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x101>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@200 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x200>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@201 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x201>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@300 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x300>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-		cpu@301 {
-			device_type = "cpu";
-			compatible = "apm,potenza", "arm,armv8";
-			reg = <0x0 0x301>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x1 0x0000fff8>;
-		};
-	};
-
-	gic: interrupt-controller@78010000 {
-		compatible = "arm,cortex-a15-gic";
-		#interrupt-cells = <3>;
-		interrupt-controller;
-		reg = <0x0 0x78010000 0x0 0x1000>,	/* GIC Dist */
-		      <0x0 0x78020000 0x0 0x1000>,	/* GIC CPU */
-		      <0x0 0x78040000 0x0 0x2000>,	/* GIC VCPU Control */
-		      <0x0 0x78060000 0x0 0x2000>;	/* GIC VCPU */
-		interrupts = <1 9 0xf04>;	/* GIC Maintenence IRQ */
-	};
-
-	timer {
-		compatible = "arm,armv8-timer";
-		interrupts = <1 0 0xff01>,	/* Secure Phys IRQ */
-			     <1 13 0xff01>,	/* Non-secure Phys IRQ */
-			     <1 14 0xff01>,	/* Virt IRQ */
-			     <1 15 0xff01>;	/* Hyp IRQ */
-		clock-frequency = <50000000>;
-	};
-
-	soc {
-		compatible = "simple-bus";
-		#address-cells = <2>;
-		#size-cells = <2>;
-		ranges;
-
-		clocks {
-			#address-cells = <2>;
-			#size-cells = <2>;
-			ranges;
-			refclk: refclk {
-				compatible = "fixed-clock";
-				#clock-cells = <1>;
-				clock-frequency = <100000000>;
-				clock-output-names = "refclk";
-			};
-
-			pcppll: pcppll@17000100 {
-				compatible = "apm,xgene-pcppll-clock";
-				#clock-cells = <1>;
-				clocks = <&refclk 0>;
-				clock-names = "pcppll";
-				reg = <0x0 0x17000100 0x0 0x1000>;
-				clock-output-names = "pcppll";
-				type = <0>;
-			};
-
-			socpll: socpll@17000120 {
-				compatible = "apm,xgene-socpll-clock";
-				#clock-cells = <1>;
-				clocks = <&refclk 0>;
-				clock-names = "socpll";
-				reg = <0x0 0x17000120 0x0 0x1000>;
-				clock-output-names = "socpll";
-				type = <1>;
-			};
-
-			socplldiv2: socplldiv2  {
-				compatible = "fixed-factor-clock";
-				#clock-cells = <1>;
-				clocks = <&socpll 0>;
-				clock-names = "socplldiv2";
-				clock-mult = <1>;
-				clock-div = <2>;
-				clock-output-names = "socplldiv2";
-			};
-
-			qmlclk: qmlclk {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				clock-names = "qmlclk";
-				reg = <0x0 0x1703C000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "qmlclk";
-			};
-
-			ethclk: ethclk {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				clock-names = "ethclk";
-				reg = <0x0 0x17000000 0x0 0x1000>;
-				reg-names = "div-reg";
-				divider-offset = <0x238>;
-				divider-width = <0x9>;
-				divider-shift = <0x0>;
-				clock-output-names = "ethclk";
-			};
-
-			menetclk: menetclk {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&ethclk 0>;
-				reg = <0x0 0x1702C000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "menetclk";
-			};
-
-			sataphy1clk: sataphy1clk@1f21c000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x1f21c000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "sataphy1clk";
-				status = "disabled";
-				csr-offset = <0x4>;
-				csr-mask = <0x00>;
-				enable-offset = <0x0>;
-				enable-mask = <0x06>;
-			};
-
-			sataphy2clk: sataphy1clk@1f22c000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x1f22c000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "sataphy2clk";
-				status = "ok";
-				csr-offset = <0x4>;
-				csr-mask = <0x3a>;
-				enable-offset = <0x0>;
-				enable-mask = <0x06>;
-			};
-
-			sataphy3clk: sataphy1clk@1f23c000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x1f23c000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "sataphy3clk";
-				status = "ok";
-				csr-offset = <0x4>;
-				csr-mask = <0x3a>;
-				enable-offset = <0x0>;
-				enable-mask = <0x06>;
-			};
-
-			sata01clk: sata01clk@1f21c000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x1f21c000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "sata01clk";
-				csr-offset = <0x4>;
-				csr-mask = <0x05>;
-				enable-offset = <0x0>;
-				enable-mask = <0x39>;
-			};
-
-			sata23clk: sata23clk@1f22c000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x1f22c000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "sata23clk";
-				csr-offset = <0x4>;
-				csr-mask = <0x05>;
-				enable-offset = <0x0>;
-				enable-mask = <0x39>;
-			};
-
-			sata45clk: sata45clk@1f23c000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x1f23c000 0x0 0x1000>;
-				reg-names = "csr-reg";
-				clock-output-names = "sata45clk";
-				csr-offset = <0x4>;
-				csr-mask = <0x05>;
-				enable-offset = <0x0>;
-				enable-mask = <0x39>;
-			};
-
-			rtcclk: rtcclk@17000000 {
-				compatible = "apm,xgene-device-clock";
-				#clock-cells = <1>;
-				clocks = <&socplldiv2 0>;
-				reg = <0x0 0x17000000 0x0 0x2000>;
-				reg-names = "csr-reg";
-				csr-offset = <0xc>;
-				csr-mask = <0x2>;
-				enable-offset = <0x10>;
-				enable-mask = <0x2>;
-				clock-output-names = "rtcclk";
-			};
-		};
-
-		serial0: serial@1c020000 {
-			status = "disabled";
-			device_type = "serial";
-			compatible = "ns16550a";
-			reg = <0 0x1c020000 0x0 0x1000>;
-			reg-shift = <2>;
-			clock-frequency = <10000000>; /* Updated by bootloader */
-			interrupt-parent = <&gic>;
-			interrupts = <0x0 0x4c 0x4>;
-		};
-
-		serial1: serial@1c021000 {
-			status = "disabled";
-			device_type = "serial";
-			compatible = "ns16550a";
-			reg = <0 0x1c021000 0x0 0x1000>;
-			reg-shift = <2>;
-			clock-frequency = <10000000>; /* Updated by bootloader */
-			interrupt-parent = <&gic>;
-			interrupts = <0x0 0x4d 0x4>;
-		};
-
-		serial2: serial@1c022000 {
-			status = "disabled";
-			device_type = "serial";
-			compatible = "ns16550a";
-			reg = <0 0x1c022000 0x0 0x1000>;
-			reg-shift = <2>;
-			clock-frequency = <10000000>; /* Updated by bootloader */
-			interrupt-parent = <&gic>;
-			interrupts = <0x0 0x4e 0x4>;
-		};
-
-		serial3: serial@1c023000 {
-			status = "disabled";
-			device_type = "serial";
-			compatible = "ns16550a";
-			reg = <0 0x1c023000 0x0 0x1000>;
-			reg-shift = <2>;
-			clock-frequency = <10000000>; /* Updated by bootloader */
-			interrupt-parent = <&gic>;
-			interrupts = <0x0 0x4f 0x4>;
-		};
-
-		phy1: phy@1f21a000 {
-			compatible = "apm,xgene-phy";
-			reg = <0x0 0x1f21a000 0x0 0x100>;
-			#phy-cells = <1>;
-			clocks = <&sataphy1clk 0>;
-			status = "disabled";
-			apm,tx-boost-gain = <30 30 30 30 30 30>;
-			apm,tx-eye-tuning = <2 10 10 2 10 10>;
-		};
-
-		phy2: phy@1f22a000 {
-			compatible = "apm,xgene-phy";
-			reg = <0x0 0x1f22a000 0x0 0x100>;
-			#phy-cells = <1>;
-			clocks = <&sataphy2clk 0>;
-			status = "ok";
-			apm,tx-boost-gain = <30 30 30 30 30 30>;
-			apm,tx-eye-tuning = <1 10 10 2 10 10>;
-		};
-
-		phy3: phy@1f23a000 {
-			compatible = "apm,xgene-phy";
-			reg = <0x0 0x1f23a000 0x0 0x100>;
-			#phy-cells = <1>;
-			clocks = <&sataphy3clk 0>;
-			status = "ok";
-			apm,tx-boost-gain = <31 31 31 31 31 31>;
-			apm,tx-eye-tuning = <2 10 10 2 10 10>;
-		};
-
-		sata1: sata@1a000000 {
-			compatible = "apm,xgene-ahci";
-			reg = <0x0 0x1a000000 0x0 0x1000>,
-			      <0x0 0x1f210000 0x0 0x1000>,
-			      <0x0 0x1f21d000 0x0 0x1000>,
-			      <0x0 0x1f21e000 0x0 0x1000>,
-			      <0x0 0x1f217000 0x0 0x1000>;
-			interrupts = <0x0 0x86 0x4>;
-			dma-coherent;
-			status = "disabled";
-			clocks = <&sata01clk 0>;
-			phys = <&phy1 0>;
-			phy-names = "sata-phy";
-		};
-
-		sata2: sata@1a400000 {
-			compatible = "apm,xgene-ahci";
-			reg = <0x0 0x1a400000 0x0 0x1000>,
-			      <0x0 0x1f220000 0x0 0x1000>,
-			      <0x0 0x1f22d000 0x0 0x1000>,
-			      <0x0 0x1f22e000 0x0 0x1000>,
-			      <0x0 0x1f227000 0x0 0x1000>;
-			interrupts = <0x0 0x87 0x4>;
-			dma-coherent;
-			status = "ok";
-			clocks = <&sata23clk 0>;
-			phys = <&phy2 0>;
-			phy-names = "sata-phy";
-		};
-
-		sata3: sata@1a800000 {
-			compatible = "apm,xgene-ahci";
-			reg = <0x0 0x1a800000 0x0 0x1000>,
-			      <0x0 0x1f230000 0x0 0x1000>,
-			      <0x0 0x1f23d000 0x0 0x1000>,
-			      <0x0 0x1f23e000 0x0 0x1000>;
-			interrupts = <0x0 0x88 0x4>;
-			dma-coherent;
-			status = "ok";
-			clocks = <&sata45clk 0>;
-			phys = <&phy3 0>;
-			phy-names = "sata-phy";
-		};
-
-		rtc: rtc@10510000 {
-			compatible = "apm,xgene-rtc";
-			reg = <0x0 0x10510000 0x0 0x400>;
-			interrupts = <0x0 0x46 0x4>;
-			#clock-cells = <1>;
-			clocks = <&rtcclk 0>;
-		};
-
-		menet: ethernet@17020000 {
-			compatible = "apm,xgene-enet";
-			status = "disabled";
-			reg = <0x0 0x17020000 0x0 0xd100>,
-			      <0x0 0X17030000 0x0 0X400>,
-			      <0x0 0X10000000 0x0 0X200>;
-			reg-names = "enet_csr", "ring_csr", "ring_cmd";
-			interrupts = <0x0 0x3c 0x4>;
-			dma-coherent;
-			clocks = <&menetclk 0>;
-			local-mac-address = [00 01 73 00 00 01];
-			phy-connection-type = "rgmii";
-			phy-handle = <&menetphy>;
-			mdio {
-				compatible = "apm,xgene-mdio";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				menetphy: menetphy@3 {
-					compatible = "ethernet-phy-id001c.c915";
-					reg = <0x3>;
-				};
-
-			};
-		};
-	};
-};
diff --git a/arch/arm64/boot/dts/apm/Makefile b/arch/arm64/boot/dts/apm/Makefile
new file mode 100644
index 000000000000..a2afabbc1717
--- /dev/null
+++ b/arch/arm64/boot/dts/apm/Makefile
@@ -0,0 +1,5 @@
+dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
+
+always		:= $(dtb-y)
+subdir-y	:= $(dts-dirs)
+clean-files	:= *.dtb
diff --git a/arch/arm64/boot/dts/apm/apm-mustang.dts b/arch/arm64/boot/dts/apm/apm-mustang.dts
new file mode 100644
index 000000000000..b2f56229aa5e
--- /dev/null
+++ b/arch/arm64/boot/dts/apm/apm-mustang.dts
@@ -0,0 +1,34 @@
+/*
+ * dts file for AppliedMicro (APM) Mustang Board
+ *
+ * Copyright (C) 2013, Applied Micro Circuits Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/dts-v1/;
+
+/include/ "apm-storm.dtsi"
+
+/ {
+	model = "APM X-Gene Mustang board";
+	compatible = "apm,mustang", "apm,xgene-storm";
+
+	chosen { };
+
+	memory {
+		device_type = "memory";
+		reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
+	};
+};
+
+&serial0 {
+	status = "ok";
+};
+
+&menet {
+	status = "ok";
+};
diff --git a/arch/arm64/boot/dts/apm/apm-storm.dtsi b/arch/arm64/boot/dts/apm/apm-storm.dtsi
new file mode 100644
index 000000000000..c0aceef7f5b3
--- /dev/null
+++ b/arch/arm64/boot/dts/apm/apm-storm.dtsi
@@ -0,0 +1,425 @@
+/*
+ * dts file for AppliedMicro (APM) X-Gene Storm SOC
+ *
+ * Copyright (C) 2013, Applied Micro Circuits Corporation
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ */
+
+/ {
+	compatible = "apm,xgene-storm";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu@000 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x000>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@001 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x001>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@100 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x100>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@101 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x101>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@200 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x200>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@201 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x201>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@300 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x300>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+		cpu@301 {
+			device_type = "cpu";
+			compatible = "apm,potenza", "arm,armv8";
+			reg = <0x0 0x301>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x1 0x0000fff8>;
+		};
+	};
+
+	gic: interrupt-controller@78010000 {
+		compatible = "arm,cortex-a15-gic";
+		#interrupt-cells = <3>;
+		interrupt-controller;
+		reg = <0x0 0x78010000 0x0 0x1000>,	/* GIC Dist */
+		      <0x0 0x78020000 0x0 0x1000>,	/* GIC CPU */
+		      <0x0 0x78040000 0x0 0x2000>,	/* GIC VCPU Control */
+		      <0x0 0x78060000 0x0 0x2000>;	/* GIC VCPU */
+		interrupts = <1 9 0xf04>;	/* GIC Maintenence IRQ */
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <1 0 0xff01>,	/* Secure Phys IRQ */
+			     <1 13 0xff01>,	/* Non-secure Phys IRQ */
+			     <1 14 0xff01>,	/* Virt IRQ */
+			     <1 15 0xff01>;	/* Hyp IRQ */
+		clock-frequency = <50000000>;
+	};
+
+	soc {
+		compatible = "simple-bus";
+		#address-cells = <2>;
+		#size-cells = <2>;
+		ranges;
+
+		clocks {
+			#address-cells = <2>;
+			#size-cells = <2>;
+			ranges;
+			refclk: refclk {
+				compatible = "fixed-clock";
+				#clock-cells = <1>;
+				clock-frequency = <100000000>;
+				clock-output-names = "refclk";
+			};
+
+			pcppll: pcppll@17000100 {
+				compatible = "apm,xgene-pcppll-clock";
+				#clock-cells = <1>;
+				clocks = <&refclk 0>;
+				clock-names = "pcppll";
+				reg = <0x0 0x17000100 0x0 0x1000>;
+				clock-output-names = "pcppll";
+				type = <0>;
+			};
+
+			socpll: socpll@17000120 {
+				compatible = "apm,xgene-socpll-clock";
+				#clock-cells = <1>;
+				clocks = <&refclk 0>;
+				clock-names = "socpll";
+				reg = <0x0 0x17000120 0x0 0x1000>;
+				clock-output-names = "socpll";
+				type = <1>;
+			};
+
+			socplldiv2: socplldiv2  {
+				compatible = "fixed-factor-clock";
+				#clock-cells = <1>;
+				clocks = <&socpll 0>;
+				clock-names = "socplldiv2";
+				clock-mult = <1>;
+				clock-div = <2>;
+				clock-output-names = "socplldiv2";
+			};
+
+			qmlclk: qmlclk {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				clock-names = "qmlclk";
+				reg = <0x0 0x1703C000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "qmlclk";
+			};
+
+			ethclk: ethclk {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				clock-names = "ethclk";
+				reg = <0x0 0x17000000 0x0 0x1000>;
+				reg-names = "div-reg";
+				divider-offset = <0x238>;
+				divider-width = <0x9>;
+				divider-shift = <0x0>;
+				clock-output-names = "ethclk";
+			};
+
+			menetclk: menetclk {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&ethclk 0>;
+				reg = <0x0 0x1702C000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "menetclk";
+			};
+
+			sataphy1clk: sataphy1clk@1f21c000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x1f21c000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "sataphy1clk";
+				status = "disabled";
+				csr-offset = <0x4>;
+				csr-mask = <0x00>;
+				enable-offset = <0x0>;
+				enable-mask = <0x06>;
+			};
+
+			sataphy2clk: sataphy1clk@1f22c000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x1f22c000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "sataphy2clk";
+				status = "ok";
+				csr-offset = <0x4>;
+				csr-mask = <0x3a>;
+				enable-offset = <0x0>;
+				enable-mask = <0x06>;
+			};
+
+			sataphy3clk: sataphy1clk@1f23c000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x1f23c000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "sataphy3clk";
+				status = "ok";
+				csr-offset = <0x4>;
+				csr-mask = <0x3a>;
+				enable-offset = <0x0>;
+				enable-mask = <0x06>;
+			};
+
+			sata01clk: sata01clk@1f21c000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x1f21c000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "sata01clk";
+				csr-offset = <0x4>;
+				csr-mask = <0x05>;
+				enable-offset = <0x0>;
+				enable-mask = <0x39>;
+			};
+
+			sata23clk: sata23clk@1f22c000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x1f22c000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "sata23clk";
+				csr-offset = <0x4>;
+				csr-mask = <0x05>;
+				enable-offset = <0x0>;
+				enable-mask = <0x39>;
+			};
+
+			sata45clk: sata45clk@1f23c000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x1f23c000 0x0 0x1000>;
+				reg-names = "csr-reg";
+				clock-output-names = "sata45clk";
+				csr-offset = <0x4>;
+				csr-mask = <0x05>;
+				enable-offset = <0x0>;
+				enable-mask = <0x39>;
+			};
+
+			rtcclk: rtcclk@17000000 {
+				compatible = "apm,xgene-device-clock";
+				#clock-cells = <1>;
+				clocks = <&socplldiv2 0>;
+				reg = <0x0 0x17000000 0x0 0x2000>;
+				reg-names = "csr-reg";
+				csr-offset = <0xc>;
+				csr-mask = <0x2>;
+				enable-offset = <0x10>;
+				enable-mask = <0x2>;
+				clock-output-names = "rtcclk";
+			};
+		};
+
+		serial0: serial@1c020000 {
+			status = "disabled";
+			device_type = "serial";
+			compatible = "ns16550a";
+			reg = <0 0x1c020000 0x0 0x1000>;
+			reg-shift = <2>;
+			clock-frequency = <10000000>; /* Updated by bootloader */
+			interrupt-parent = <&gic>;
+			interrupts = <0x0 0x4c 0x4>;
+		};
+
+		serial1: serial@1c021000 {
+			status = "disabled";
+			device_type = "serial";
+			compatible = "ns16550a";
+			reg = <0 0x1c021000 0x0 0x1000>;
+			reg-shift = <2>;
+			clock-frequency = <10000000>; /* Updated by bootloader */
+			interrupt-parent = <&gic>;
+			interrupts = <0x0 0x4d 0x4>;
+		};
+
+		serial2: serial@1c022000 {
+			status = "disabled";
+			device_type = "serial";
+			compatible = "ns16550a";
+			reg = <0 0x1c022000 0x0 0x1000>;
+			reg-shift = <2>;
+			clock-frequency = <10000000>; /* Updated by bootloader */
+			interrupt-parent = <&gic>;
+			interrupts = <0x0 0x4e 0x4>;
+		};
+
+		serial3: serial@1c023000 {
+			status = "disabled";
+			device_type = "serial";
+			compatible = "ns16550a";
+			reg = <0 0x1c023000 0x0 0x1000>;
+			reg-shift = <2>;
+			clock-frequency = <10000000>; /* Updated by bootloader */
+			interrupt-parent = <&gic>;
+			interrupts = <0x0 0x4f 0x4>;
+		};
+
+		phy1: phy@1f21a000 {
+			compatible = "apm,xgene-phy";
+			reg = <0x0 0x1f21a000 0x0 0x100>;
+			#phy-cells = <1>;
+			clocks = <&sataphy1clk 0>;
+			status = "disabled";
+			apm,tx-boost-gain = <30 30 30 30 30 30>;
+			apm,tx-eye-tuning = <2 10 10 2 10 10>;
+		};
+
+		phy2: phy@1f22a000 {
+			compatible = "apm,xgene-phy";
+			reg = <0x0 0x1f22a000 0x0 0x100>;
+			#phy-cells = <1>;
+			clocks = <&sataphy2clk 0>;
+			status = "ok";
+			apm,tx-boost-gain = <30 30 30 30 30 30>;
+			apm,tx-eye-tuning = <1 10 10 2 10 10>;
+		};
+
+		phy3: phy@1f23a000 {
+			compatible = "apm,xgene-phy";
+			reg = <0x0 0x1f23a000 0x0 0x100>;
+			#phy-cells = <1>;
+			clocks = <&sataphy3clk 0>;
+			status = "ok";
+			apm,tx-boost-gain = <31 31 31 31 31 31>;
+			apm,tx-eye-tuning = <2 10 10 2 10 10>;
+		};
+
+		sata1: sata@1a000000 {
+			compatible = "apm,xgene-ahci";
+			reg = <0x0 0x1a000000 0x0 0x1000>,
+			      <0x0 0x1f210000 0x0 0x1000>,
+			      <0x0 0x1f21d000 0x0 0x1000>,
+			      <0x0 0x1f21e000 0x0 0x1000>,
+			      <0x0 0x1f217000 0x0 0x1000>;
+			interrupts = <0x0 0x86 0x4>;
+			dma-coherent;
+			status = "disabled";
+			clocks = <&sata01clk 0>;
+			phys = <&phy1 0>;
+			phy-names = "sata-phy";
+		};
+
+		sata2: sata@1a400000 {
+			compatible = "apm,xgene-ahci";
+			reg = <0x0 0x1a400000 0x0 0x1000>,
+			      <0x0 0x1f220000 0x0 0x1000>,
+			      <0x0 0x1f22d000 0x0 0x1000>,
+			      <0x0 0x1f22e000 0x0 0x1000>,
+			      <0x0 0x1f227000 0x0 0x1000>;
+			interrupts = <0x0 0x87 0x4>;
+			dma-coherent;
+			status = "ok";
+			clocks = <&sata23clk 0>;
+			phys = <&phy2 0>;
+			phy-names = "sata-phy";
+		};
+
+		sata3: sata@1a800000 {
+			compatible = "apm,xgene-ahci";
+			reg = <0x0 0x1a800000 0x0 0x1000>,
+			      <0x0 0x1f230000 0x0 0x1000>,
+			      <0x0 0x1f23d000 0x0 0x1000>,
+			      <0x0 0x1f23e000 0x0 0x1000>;
+			interrupts = <0x0 0x88 0x4>;
+			dma-coherent;
+			status = "ok";
+			clocks = <&sata45clk 0>;
+			phys = <&phy3 0>;
+			phy-names = "sata-phy";
+		};
+
+		rtc: rtc@10510000 {
+			compatible = "apm,xgene-rtc";
+			reg = <0x0 0x10510000 0x0 0x400>;
+			interrupts = <0x0 0x46 0x4>;
+			#clock-cells = <1>;
+			clocks = <&rtcclk 0>;
+		};
+
+		menet: ethernet@17020000 {
+			compatible = "apm,xgene-enet";
+			status = "disabled";
+			reg = <0x0 0x17020000 0x0 0xd100>,
+			      <0x0 0X17030000 0x0 0X400>,
+			      <0x0 0X10000000 0x0 0X200>;
+			reg-names = "enet_csr", "ring_csr", "ring_cmd";
+			interrupts = <0x0 0x3c 0x4>;
+			dma-coherent;
+			clocks = <&menetclk 0>;
+			local-mac-address = [00 01 73 00 00 01];
+			phy-connection-type = "rgmii";
+			phy-handle = <&menetphy>;
+			mdio {
+				compatible = "apm,xgene-mdio";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				menetphy: menetphy@3 {
+					compatible = "ethernet-phy-id001c.c915";
+					reg = <0x3>;
+				};
+
+			};
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/arm/Makefile b/arch/arm64/boot/dts/arm/Makefile
new file mode 100644
index 000000000000..43d1404bb3c1
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/Makefile
@@ -0,0 +1,6 @@
+dtb-$(CONFIG_ARCH_VEXPRESS) += foundation-v8.dtb
+dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
+
+always		:= $(dtb-y)
+subdir-y	:= $(dts-dirs)
+clean-files	:= *.dtb
diff --git a/arch/arm64/boot/dts/arm/foundation-v8.dts b/arch/arm64/boot/dts/arm/foundation-v8.dts
new file mode 100644
index 000000000000..4a060906809d
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/foundation-v8.dts
@@ -0,0 +1,232 @@
+/*
+ * ARM Ltd.
+ *
+ * ARMv8 Foundation model DTS
+ */
+
+/dts-v1/;
+
+/memreserve/ 0x80000000 0x00010000;
+
+/ {
+	model = "Foundation-v8A";
+	compatible = "arm,foundation-aarch64", "arm,vexpress";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	chosen { };
+
+	aliases {
+		serial0 = &v2m_serial0;
+		serial1 = &v2m_serial1;
+		serial2 = &v2m_serial2;
+		serial3 = &v2m_serial3;
+	};
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu@0 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x0>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+		cpu@1 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x1>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+		cpu@2 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x2>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+		cpu@3 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x3>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x00000000 0x80000000 0 0x80000000>,
+		      <0x00000008 0x80000000 0 0x80000000>;
+	};
+
+	gic: interrupt-controller@2c001000 {
+		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
+		#interrupt-cells = <3>;
+		#address-cells = <0>;
+		interrupt-controller;
+		reg = <0x0 0x2c001000 0 0x1000>,
+		      <0x0 0x2c002000 0 0x1000>,
+		      <0x0 0x2c004000 0 0x2000>,
+		      <0x0 0x2c006000 0 0x2000>;
+		interrupts = <1 9 0xf04>;
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <1 13 0xff01>,
+			     <1 14 0xff01>,
+			     <1 11 0xff01>,
+			     <1 10 0xff01>;
+		clock-frequency = <100000000>;
+	};
+
+	pmu {
+		compatible = "arm,armv8-pmuv3";
+		interrupts = <0 60 4>,
+			     <0 61 4>,
+			     <0 62 4>,
+			     <0 63 4>;
+	};
+
+	smb {
+		compatible = "arm,vexpress,v2m-p1", "simple-bus";
+		arm,v2m-memory-map = "rs1";
+		#address-cells = <2>; /* SMB chipselect number and offset */
+		#size-cells = <1>;
+
+		ranges = <0 0 0 0x08000000 0x04000000>,
+			 <1 0 0 0x14000000 0x04000000>,
+			 <2 0 0 0x18000000 0x04000000>,
+			 <3 0 0 0x1c000000 0x04000000>,
+			 <4 0 0 0x0c000000 0x04000000>,
+			 <5 0 0 0x10000000 0x04000000>;
+
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 0 63>;
+		interrupt-map = <0 0  0 &gic 0  0 4>,
+				<0 0  1 &gic 0  1 4>,
+				<0 0  2 &gic 0  2 4>,
+				<0 0  3 &gic 0  3 4>,
+				<0 0  4 &gic 0  4 4>,
+				<0 0  5 &gic 0  5 4>,
+				<0 0  6 &gic 0  6 4>,
+				<0 0  7 &gic 0  7 4>,
+				<0 0  8 &gic 0  8 4>,
+				<0 0  9 &gic 0  9 4>,
+				<0 0 10 &gic 0 10 4>,
+				<0 0 11 &gic 0 11 4>,
+				<0 0 12 &gic 0 12 4>,
+				<0 0 13 &gic 0 13 4>,
+				<0 0 14 &gic 0 14 4>,
+				<0 0 15 &gic 0 15 4>,
+				<0 0 16 &gic 0 16 4>,
+				<0 0 17 &gic 0 17 4>,
+				<0 0 18 &gic 0 18 4>,
+				<0 0 19 &gic 0 19 4>,
+				<0 0 20 &gic 0 20 4>,
+				<0 0 21 &gic 0 21 4>,
+				<0 0 22 &gic 0 22 4>,
+				<0 0 23 &gic 0 23 4>,
+				<0 0 24 &gic 0 24 4>,
+				<0 0 25 &gic 0 25 4>,
+				<0 0 26 &gic 0 26 4>,
+				<0 0 27 &gic 0 27 4>,
+				<0 0 28 &gic 0 28 4>,
+				<0 0 29 &gic 0 29 4>,
+				<0 0 30 &gic 0 30 4>,
+				<0 0 31 &gic 0 31 4>,
+				<0 0 32 &gic 0 32 4>,
+				<0 0 33 &gic 0 33 4>,
+				<0 0 34 &gic 0 34 4>,
+				<0 0 35 &gic 0 35 4>,
+				<0 0 36 &gic 0 36 4>,
+				<0 0 37 &gic 0 37 4>,
+				<0 0 38 &gic 0 38 4>,
+				<0 0 39 &gic 0 39 4>,
+				<0 0 40 &gic 0 40 4>,
+				<0 0 41 &gic 0 41 4>,
+				<0 0 42 &gic 0 42 4>;
+
+		ethernet@2,02000000 {
+			compatible = "smsc,lan91c111";
+			reg = <2 0x02000000 0x10000>;
+			interrupts = <15>;
+		};
+
+		v2m_clk24mhz: clk24mhz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <24000000>;
+			clock-output-names = "v2m:clk24mhz";
+		};
+
+		v2m_refclk1mhz: refclk1mhz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <1000000>;
+			clock-output-names = "v2m:refclk1mhz";
+		};
+
+		v2m_refclk32khz: refclk32khz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <32768>;
+			clock-output-names = "v2m:refclk32khz";
+		};
+
+		iofpga@3,00000000 {
+			compatible = "arm,amba-bus", "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 3 0 0x200000>;
+
+			v2m_sysreg: sysreg@010000 {
+				compatible = "arm,vexpress-sysreg";
+				reg = <0x010000 0x1000>;
+			};
+
+			v2m_serial0: uart@090000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x090000 0x1000>;
+				interrupts = <5>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			v2m_serial1: uart@0a0000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x0a0000 0x1000>;
+				interrupts = <6>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			v2m_serial2: uart@0b0000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x0b0000 0x1000>;
+				interrupts = <7>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			v2m_serial3: uart@0c0000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x0c0000 0x1000>;
+				interrupts = <8>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			virtio_block@0130000 {
+				compatible = "virtio,mmio";
+				reg = <0x130000 0x200>;
+				interrupts = <42>;
+			};
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
new file mode 100644
index 000000000000..572005ea2217
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts
@@ -0,0 +1,159 @@
+/*
+ * ARM Ltd. Fast Models
+ *
+ * Architecture Envelope Model (AEM) ARMv8-A
+ * ARMAEMv8AMPCT
+ *
+ * RTSM_VE_AEMv8A.lisa
+ */
+
+/dts-v1/;
+
+/memreserve/ 0x80000000 0x00010000;
+
+/ {
+	model = "RTSM_VE_AEMv8A";
+	compatible = "arm,rtsm_ve,aemv8a", "arm,vexpress";
+	interrupt-parent = <&gic>;
+	#address-cells = <2>;
+	#size-cells = <2>;
+
+	chosen { };
+
+	aliases {
+		serial0 = &v2m_serial0;
+		serial1 = &v2m_serial1;
+		serial2 = &v2m_serial2;
+		serial3 = &v2m_serial3;
+	};
+
+	cpus {
+		#address-cells = <2>;
+		#size-cells = <0>;
+
+		cpu@0 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x0>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+		cpu@1 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x1>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+		cpu@2 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x2>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+		cpu@3 {
+			device_type = "cpu";
+			compatible = "arm,armv8";
+			reg = <0x0 0x3>;
+			enable-method = "spin-table";
+			cpu-release-addr = <0x0 0x8000fff8>;
+		};
+	};
+
+	memory@80000000 {
+		device_type = "memory";
+		reg = <0x00000000 0x80000000 0 0x80000000>,
+		      <0x00000008 0x80000000 0 0x80000000>;
+	};
+
+	gic: interrupt-controller@2c001000 {
+		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
+		#interrupt-cells = <3>;
+		#address-cells = <0>;
+		interrupt-controller;
+		reg = <0x0 0x2c001000 0 0x1000>,
+		      <0x0 0x2c002000 0 0x1000>,
+		      <0x0 0x2c004000 0 0x2000>,
+		      <0x0 0x2c006000 0 0x2000>;
+		interrupts = <1 9 0xf04>;
+	};
+
+	timer {
+		compatible = "arm,armv8-timer";
+		interrupts = <1 13 0xff01>,
+			     <1 14 0xff01>,
+			     <1 11 0xff01>,
+			     <1 10 0xff01>;
+		clock-frequency = <100000000>;
+	};
+
+	pmu {
+		compatible = "arm,armv8-pmuv3";
+		interrupts = <0 60 4>,
+			     <0 61 4>,
+			     <0 62 4>,
+			     <0 63 4>;
+	};
+
+	smb {
+		compatible = "simple-bus";
+
+		#address-cells = <2>;
+		#size-cells = <1>;
+		ranges = <0 0 0 0x08000000 0x04000000>,
+			 <1 0 0 0x14000000 0x04000000>,
+			 <2 0 0 0x18000000 0x04000000>,
+			 <3 0 0 0x1c000000 0x04000000>,
+			 <4 0 0 0x0c000000 0x04000000>,
+			 <5 0 0 0x10000000 0x04000000>;
+
+		#interrupt-cells = <1>;
+		interrupt-map-mask = <0 0 63>;
+		interrupt-map = <0 0  0 &gic 0  0 4>,
+				<0 0  1 &gic 0  1 4>,
+				<0 0  2 &gic 0  2 4>,
+				<0 0  3 &gic 0  3 4>,
+				<0 0  4 &gic 0  4 4>,
+				<0 0  5 &gic 0  5 4>,
+				<0 0  6 &gic 0  6 4>,
+				<0 0  7 &gic 0  7 4>,
+				<0 0  8 &gic 0  8 4>,
+				<0 0  9 &gic 0  9 4>,
+				<0 0 10 &gic 0 10 4>,
+				<0 0 11 &gic 0 11 4>,
+				<0 0 12 &gic 0 12 4>,
+				<0 0 13 &gic 0 13 4>,
+				<0 0 14 &gic 0 14 4>,
+				<0 0 15 &gic 0 15 4>,
+				<0 0 16 &gic 0 16 4>,
+				<0 0 17 &gic 0 17 4>,
+				<0 0 18 &gic 0 18 4>,
+				<0 0 19 &gic 0 19 4>,
+				<0 0 20 &gic 0 20 4>,
+				<0 0 21 &gic 0 21 4>,
+				<0 0 22 &gic 0 22 4>,
+				<0 0 23 &gic 0 23 4>,
+				<0 0 24 &gic 0 24 4>,
+				<0 0 25 &gic 0 25 4>,
+				<0 0 26 &gic 0 26 4>,
+				<0 0 27 &gic 0 27 4>,
+				<0 0 28 &gic 0 28 4>,
+				<0 0 29 &gic 0 29 4>,
+				<0 0 30 &gic 0 30 4>,
+				<0 0 31 &gic 0 31 4>,
+				<0 0 32 &gic 0 32 4>,
+				<0 0 33 &gic 0 33 4>,
+				<0 0 34 &gic 0 34 4>,
+				<0 0 35 &gic 0 35 4>,
+				<0 0 36 &gic 0 36 4>,
+				<0 0 37 &gic 0 37 4>,
+				<0 0 38 &gic 0 38 4>,
+				<0 0 39 &gic 0 39 4>,
+				<0 0 40 &gic 0 40 4>,
+				<0 0 41 &gic 0 41 4>,
+				<0 0 42 &gic 0 42 4>;
+
+		/include/ "rtsm_ve-motherboard.dtsi"
+	};
+};
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi b/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
new file mode 100644
index 000000000000..ac2cb2418025
--- /dev/null
+++ b/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
@@ -0,0 +1,240 @@
+/*
+ * ARM Ltd. Fast Models
+ *
+ * Versatile Express (VE) system model
+ * Motherboard component
+ *
+ * VEMotherBoard.lisa
+ */
+
+	motherboard {
+		arm,v2m-memory-map = "rs1";
+		compatible = "arm,vexpress,v2m-p1", "simple-bus";
+		#address-cells = <2>; /* SMB chipselect number and offset */
+		#size-cells = <1>;
+		#interrupt-cells = <1>;
+		ranges;
+
+		flash@0,00000000 {
+			compatible = "arm,vexpress-flash", "cfi-flash";
+			reg = <0 0x00000000 0x04000000>,
+			      <4 0x00000000 0x04000000>;
+			bank-width = <4>;
+		};
+
+		vram@2,00000000 {
+			compatible = "arm,vexpress-vram";
+			reg = <2 0x00000000 0x00800000>;
+		};
+
+		ethernet@2,02000000 {
+			compatible = "smsc,lan91c111";
+			reg = <2 0x02000000 0x10000>;
+			interrupts = <15>;
+		};
+
+		v2m_clk24mhz: clk24mhz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <24000000>;
+			clock-output-names = "v2m:clk24mhz";
+		};
+
+		v2m_refclk1mhz: refclk1mhz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <1000000>;
+			clock-output-names = "v2m:refclk1mhz";
+		};
+
+		v2m_refclk32khz: refclk32khz {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <32768>;
+			clock-output-names = "v2m:refclk32khz";
+		};
+
+		iofpga@3,00000000 {
+			compatible = "arm,amba-bus", "simple-bus";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges = <0 3 0 0x200000>;
+
+			v2m_sysreg: sysreg@010000 {
+				compatible = "arm,vexpress-sysreg";
+				reg = <0x010000 0x1000>;
+				gpio-controller;
+				#gpio-cells = <2>;
+			};
+
+			v2m_sysctl: sysctl@020000 {
+				compatible = "arm,sp810", "arm,primecell";
+				reg = <0x020000 0x1000>;
+				clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
+				clock-names = "refclk", "timclk", "apb_pclk";
+				#clock-cells = <1>;
+				clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
+			};
+
+			aaci@040000 {
+				compatible = "arm,pl041", "arm,primecell";
+				reg = <0x040000 0x1000>;
+				interrupts = <11>;
+				clocks = <&v2m_clk24mhz>;
+				clock-names = "apb_pclk";
+			};
+
+			mmci@050000 {
+				compatible = "arm,pl180", "arm,primecell";
+				reg = <0x050000 0x1000>;
+				interrupts = <9 10>;
+				cd-gpios = <&v2m_sysreg 0 0>;
+				wp-gpios = <&v2m_sysreg 1 0>;
+				max-frequency = <12000000>;
+				vmmc-supply = <&v2m_fixed_3v3>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "mclk", "apb_pclk";
+			};
+
+			kmi@060000 {
+				compatible = "arm,pl050", "arm,primecell";
+				reg = <0x060000 0x1000>;
+				interrupts = <12>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "KMIREFCLK", "apb_pclk";
+			};
+
+			kmi@070000 {
+				compatible = "arm,pl050", "arm,primecell";
+				reg = <0x070000 0x1000>;
+				interrupts = <13>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "KMIREFCLK", "apb_pclk";
+			};
+
+			v2m_serial0: uart@090000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x090000 0x1000>;
+				interrupts = <5>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			v2m_serial1: uart@0a0000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x0a0000 0x1000>;
+				interrupts = <6>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			v2m_serial2: uart@0b0000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x0b0000 0x1000>;
+				interrupts = <7>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			v2m_serial3: uart@0c0000 {
+				compatible = "arm,pl011", "arm,primecell";
+				reg = <0x0c0000 0x1000>;
+				interrupts = <8>;
+				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
+				clock-names = "uartclk", "apb_pclk";
+			};
+
+			wdt@0f0000 {
+				compatible = "arm,sp805", "arm,primecell";
+				reg = <0x0f0000 0x1000>;
+				interrupts = <0>;
+				clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
+				clock-names = "wdogclk", "apb_pclk";
+			};
+
+			v2m_timer01: timer@110000 {
+				compatible = "arm,sp804", "arm,primecell";
+				reg = <0x110000 0x1000>;
+				interrupts = <2>;
+				clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
+				clock-names = "timclken1", "timclken2", "apb_pclk";
+			};
+
+			v2m_timer23: timer@120000 {
+				compatible = "arm,sp804", "arm,primecell";
+				reg = <0x120000 0x1000>;
+				interrupts = <3>;
+				clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
+				clock-names = "timclken1", "timclken2", "apb_pclk";
+			};
+
+			rtc@170000 {
+				compatible = "arm,pl031", "arm,primecell";
+				reg = <0x170000 0x1000>;
+				interrupts = <4>;
+				clocks = <&v2m_clk24mhz>;
+				clock-names = "apb_pclk";
+			};
+
+			clcd@1f0000 {
+				compatible = "arm,pl111", "arm,primecell";
+				reg = <0x1f0000 0x1000>;
+				interrupts = <14>;
+				clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
+				clock-names = "clcdclk", "apb_pclk";
+			};
+
+			virtio_block@0130000 {
+				compatible = "virtio,mmio";
+				reg = <0x130000 0x200>;
+				interrupts = <42>;
+			};
+		};
+
+		v2m_fixed_3v3: fixedregulator@0 {
+			compatible = "regulator-fixed";
+			regulator-name = "3V3";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+			regulator-always-on;
+		};
+
+		mcc {
+			compatible = "arm,vexpress,config-bus";
+			arm,vexpress,config-bridge = <&v2m_sysreg>;
+
+			v2m_oscclk1: osc@1 {
+				/* CLCD clock */
+				compatible = "arm,vexpress-osc";
+				arm,vexpress-sysreg,func = <1 1>;
+				freq-range = <23750000 63500000>;
+				#clock-cells = <0>;
+				clock-output-names = "v2m:oscclk1";
+			};
+
+			reset@0 {
+				compatible = "arm,vexpress-reset";
+				arm,vexpress-sysreg,func = <5 0>;
+			};
+
+			muxfpga@0 {
+				compatible = "arm,vexpress-muxfpga";
+				arm,vexpress-sysreg,func = <7 0>;
+			};
+
+			shutdown@0 {
+				compatible = "arm,vexpress-shutdown";
+				arm,vexpress-sysreg,func = <8 0>;
+			};
+
+			reboot@0 {
+				compatible = "arm,vexpress-reboot";
+				arm,vexpress-sysreg,func = <9 0>;
+			};
+
+			dvimode@0 {
+				compatible = "arm,vexpress-dvimode";
+				arm,vexpress-sysreg,func = <11 0>;
+			};
+		};
+	};
diff --git a/arch/arm64/boot/dts/foundation-v8.dts b/arch/arm64/boot/dts/foundation-v8.dts
deleted file mode 100644
index 4a060906809d..000000000000
--- a/arch/arm64/boot/dts/foundation-v8.dts
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * ARM Ltd.
- *
- * ARMv8 Foundation model DTS
- */
-
-/dts-v1/;
-
-/memreserve/ 0x80000000 0x00010000;
-
-/ {
-	model = "Foundation-v8A";
-	compatible = "arm,foundation-aarch64", "arm,vexpress";
-	interrupt-parent = <&gic>;
-	#address-cells = <2>;
-	#size-cells = <2>;
-
-	chosen { };
-
-	aliases {
-		serial0 = &v2m_serial0;
-		serial1 = &v2m_serial1;
-		serial2 = &v2m_serial2;
-		serial3 = &v2m_serial3;
-	};
-
-	cpus {
-		#address-cells = <2>;
-		#size-cells = <0>;
-
-		cpu@0 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x0>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-		cpu@1 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x1>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-		cpu@2 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x2>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-		cpu@3 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x3>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-	};
-
-	memory@80000000 {
-		device_type = "memory";
-		reg = <0x00000000 0x80000000 0 0x80000000>,
-		      <0x00000008 0x80000000 0 0x80000000>;
-	};
-
-	gic: interrupt-controller@2c001000 {
-		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
-		#interrupt-cells = <3>;
-		#address-cells = <0>;
-		interrupt-controller;
-		reg = <0x0 0x2c001000 0 0x1000>,
-		      <0x0 0x2c002000 0 0x1000>,
-		      <0x0 0x2c004000 0 0x2000>,
-		      <0x0 0x2c006000 0 0x2000>;
-		interrupts = <1 9 0xf04>;
-	};
-
-	timer {
-		compatible = "arm,armv8-timer";
-		interrupts = <1 13 0xff01>,
-			     <1 14 0xff01>,
-			     <1 11 0xff01>,
-			     <1 10 0xff01>;
-		clock-frequency = <100000000>;
-	};
-
-	pmu {
-		compatible = "arm,armv8-pmuv3";
-		interrupts = <0 60 4>,
-			     <0 61 4>,
-			     <0 62 4>,
-			     <0 63 4>;
-	};
-
-	smb {
-		compatible = "arm,vexpress,v2m-p1", "simple-bus";
-		arm,v2m-memory-map = "rs1";
-		#address-cells = <2>; /* SMB chipselect number and offset */
-		#size-cells = <1>;
-
-		ranges = <0 0 0 0x08000000 0x04000000>,
-			 <1 0 0 0x14000000 0x04000000>,
-			 <2 0 0 0x18000000 0x04000000>,
-			 <3 0 0 0x1c000000 0x04000000>,
-			 <4 0 0 0x0c000000 0x04000000>,
-			 <5 0 0 0x10000000 0x04000000>;
-
-		#interrupt-cells = <1>;
-		interrupt-map-mask = <0 0 63>;
-		interrupt-map = <0 0  0 &gic 0  0 4>,
-				<0 0  1 &gic 0  1 4>,
-				<0 0  2 &gic 0  2 4>,
-				<0 0  3 &gic 0  3 4>,
-				<0 0  4 &gic 0  4 4>,
-				<0 0  5 &gic 0  5 4>,
-				<0 0  6 &gic 0  6 4>,
-				<0 0  7 &gic 0  7 4>,
-				<0 0  8 &gic 0  8 4>,
-				<0 0  9 &gic 0  9 4>,
-				<0 0 10 &gic 0 10 4>,
-				<0 0 11 &gic 0 11 4>,
-				<0 0 12 &gic 0 12 4>,
-				<0 0 13 &gic 0 13 4>,
-				<0 0 14 &gic 0 14 4>,
-				<0 0 15 &gic 0 15 4>,
-				<0 0 16 &gic 0 16 4>,
-				<0 0 17 &gic 0 17 4>,
-				<0 0 18 &gic 0 18 4>,
-				<0 0 19 &gic 0 19 4>,
-				<0 0 20 &gic 0 20 4>,
-				<0 0 21 &gic 0 21 4>,
-				<0 0 22 &gic 0 22 4>,
-				<0 0 23 &gic 0 23 4>,
-				<0 0 24 &gic 0 24 4>,
-				<0 0 25 &gic 0 25 4>,
-				<0 0 26 &gic 0 26 4>,
-				<0 0 27 &gic 0 27 4>,
-				<0 0 28 &gic 0 28 4>,
-				<0 0 29 &gic 0 29 4>,
-				<0 0 30 &gic 0 30 4>,
-				<0 0 31 &gic 0 31 4>,
-				<0 0 32 &gic 0 32 4>,
-				<0 0 33 &gic 0 33 4>,
-				<0 0 34 &gic 0 34 4>,
-				<0 0 35 &gic 0 35 4>,
-				<0 0 36 &gic 0 36 4>,
-				<0 0 37 &gic 0 37 4>,
-				<0 0 38 &gic 0 38 4>,
-				<0 0 39 &gic 0 39 4>,
-				<0 0 40 &gic 0 40 4>,
-				<0 0 41 &gic 0 41 4>,
-				<0 0 42 &gic 0 42 4>;
-
-		ethernet@2,02000000 {
-			compatible = "smsc,lan91c111";
-			reg = <2 0x02000000 0x10000>;
-			interrupts = <15>;
-		};
-
-		v2m_clk24mhz: clk24mhz {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <24000000>;
-			clock-output-names = "v2m:clk24mhz";
-		};
-
-		v2m_refclk1mhz: refclk1mhz {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <1000000>;
-			clock-output-names = "v2m:refclk1mhz";
-		};
-
-		v2m_refclk32khz: refclk32khz {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <32768>;
-			clock-output-names = "v2m:refclk32khz";
-		};
-
-		iofpga@3,00000000 {
-			compatible = "arm,amba-bus", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0 3 0 0x200000>;
-
-			v2m_sysreg: sysreg@010000 {
-				compatible = "arm,vexpress-sysreg";
-				reg = <0x010000 0x1000>;
-			};
-
-			v2m_serial0: uart@090000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x090000 0x1000>;
-				interrupts = <5>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			v2m_serial1: uart@0a0000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x0a0000 0x1000>;
-				interrupts = <6>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			v2m_serial2: uart@0b0000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x0b0000 0x1000>;
-				interrupts = <7>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			v2m_serial3: uart@0c0000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x0c0000 0x1000>;
-				interrupts = <8>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			virtio_block@0130000 {
-				compatible = "virtio,mmio";
-				reg = <0x130000 0x200>;
-				interrupts = <42>;
-			};
-		};
-	};
-};
diff --git a/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts b/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts
deleted file mode 100644
index 572005ea2217..000000000000
--- a/arch/arm64/boot/dts/rtsm_ve-aemv8a.dts
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * ARM Ltd. Fast Models
- *
- * Architecture Envelope Model (AEM) ARMv8-A
- * ARMAEMv8AMPCT
- *
- * RTSM_VE_AEMv8A.lisa
- */
-
-/dts-v1/;
-
-/memreserve/ 0x80000000 0x00010000;
-
-/ {
-	model = "RTSM_VE_AEMv8A";
-	compatible = "arm,rtsm_ve,aemv8a", "arm,vexpress";
-	interrupt-parent = <&gic>;
-	#address-cells = <2>;
-	#size-cells = <2>;
-
-	chosen { };
-
-	aliases {
-		serial0 = &v2m_serial0;
-		serial1 = &v2m_serial1;
-		serial2 = &v2m_serial2;
-		serial3 = &v2m_serial3;
-	};
-
-	cpus {
-		#address-cells = <2>;
-		#size-cells = <0>;
-
-		cpu@0 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x0>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-		cpu@1 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x1>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-		cpu@2 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x2>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-		cpu@3 {
-			device_type = "cpu";
-			compatible = "arm,armv8";
-			reg = <0x0 0x3>;
-			enable-method = "spin-table";
-			cpu-release-addr = <0x0 0x8000fff8>;
-		};
-	};
-
-	memory@80000000 {
-		device_type = "memory";
-		reg = <0x00000000 0x80000000 0 0x80000000>,
-		      <0x00000008 0x80000000 0 0x80000000>;
-	};
-
-	gic: interrupt-controller@2c001000 {
-		compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
-		#interrupt-cells = <3>;
-		#address-cells = <0>;
-		interrupt-controller;
-		reg = <0x0 0x2c001000 0 0x1000>,
-		      <0x0 0x2c002000 0 0x1000>,
-		      <0x0 0x2c004000 0 0x2000>,
-		      <0x0 0x2c006000 0 0x2000>;
-		interrupts = <1 9 0xf04>;
-	};
-
-	timer {
-		compatible = "arm,armv8-timer";
-		interrupts = <1 13 0xff01>,
-			     <1 14 0xff01>,
-			     <1 11 0xff01>,
-			     <1 10 0xff01>;
-		clock-frequency = <100000000>;
-	};
-
-	pmu {
-		compatible = "arm,armv8-pmuv3";
-		interrupts = <0 60 4>,
-			     <0 61 4>,
-			     <0 62 4>,
-			     <0 63 4>;
-	};
-
-	smb {
-		compatible = "simple-bus";
-
-		#address-cells = <2>;
-		#size-cells = <1>;
-		ranges = <0 0 0 0x08000000 0x04000000>,
-			 <1 0 0 0x14000000 0x04000000>,
-			 <2 0 0 0x18000000 0x04000000>,
-			 <3 0 0 0x1c000000 0x04000000>,
-			 <4 0 0 0x0c000000 0x04000000>,
-			 <5 0 0 0x10000000 0x04000000>;
-
-		#interrupt-cells = <1>;
-		interrupt-map-mask = <0 0 63>;
-		interrupt-map = <0 0  0 &gic 0  0 4>,
-				<0 0  1 &gic 0  1 4>,
-				<0 0  2 &gic 0  2 4>,
-				<0 0  3 &gic 0  3 4>,
-				<0 0  4 &gic 0  4 4>,
-				<0 0  5 &gic 0  5 4>,
-				<0 0  6 &gic 0  6 4>,
-				<0 0  7 &gic 0  7 4>,
-				<0 0  8 &gic 0  8 4>,
-				<0 0  9 &gic 0  9 4>,
-				<0 0 10 &gic 0 10 4>,
-				<0 0 11 &gic 0 11 4>,
-				<0 0 12 &gic 0 12 4>,
-				<0 0 13 &gic 0 13 4>,
-				<0 0 14 &gic 0 14 4>,
-				<0 0 15 &gic 0 15 4>,
-				<0 0 16 &gic 0 16 4>,
-				<0 0 17 &gic 0 17 4>,
-				<0 0 18 &gic 0 18 4>,
-				<0 0 19 &gic 0 19 4>,
-				<0 0 20 &gic 0 20 4>,
-				<0 0 21 &gic 0 21 4>,
-				<0 0 22 &gic 0 22 4>,
-				<0 0 23 &gic 0 23 4>,
-				<0 0 24 &gic 0 24 4>,
-				<0 0 25 &gic 0 25 4>,
-				<0 0 26 &gic 0 26 4>,
-				<0 0 27 &gic 0 27 4>,
-				<0 0 28 &gic 0 28 4>,
-				<0 0 29 &gic 0 29 4>,
-				<0 0 30 &gic 0 30 4>,
-				<0 0 31 &gic 0 31 4>,
-				<0 0 32 &gic 0 32 4>,
-				<0 0 33 &gic 0 33 4>,
-				<0 0 34 &gic 0 34 4>,
-				<0 0 35 &gic 0 35 4>,
-				<0 0 36 &gic 0 36 4>,
-				<0 0 37 &gic 0 37 4>,
-				<0 0 38 &gic 0 38 4>,
-				<0 0 39 &gic 0 39 4>,
-				<0 0 40 &gic 0 40 4>,
-				<0 0 41 &gic 0 41 4>,
-				<0 0 42 &gic 0 42 4>;
-
-		/include/ "rtsm_ve-motherboard.dtsi"
-	};
-};
diff --git a/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi b/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi
deleted file mode 100644
index ac2cb2418025..000000000000
--- a/arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * ARM Ltd. Fast Models
- *
- * Versatile Express (VE) system model
- * Motherboard component
- *
- * VEMotherBoard.lisa
- */
-
-	motherboard {
-		arm,v2m-memory-map = "rs1";
-		compatible = "arm,vexpress,v2m-p1", "simple-bus";
-		#address-cells = <2>; /* SMB chipselect number and offset */
-		#size-cells = <1>;
-		#interrupt-cells = <1>;
-		ranges;
-
-		flash@0,00000000 {
-			compatible = "arm,vexpress-flash", "cfi-flash";
-			reg = <0 0x00000000 0x04000000>,
-			      <4 0x00000000 0x04000000>;
-			bank-width = <4>;
-		};
-
-		vram@2,00000000 {
-			compatible = "arm,vexpress-vram";
-			reg = <2 0x00000000 0x00800000>;
-		};
-
-		ethernet@2,02000000 {
-			compatible = "smsc,lan91c111";
-			reg = <2 0x02000000 0x10000>;
-			interrupts = <15>;
-		};
-
-		v2m_clk24mhz: clk24mhz {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <24000000>;
-			clock-output-names = "v2m:clk24mhz";
-		};
-
-		v2m_refclk1mhz: refclk1mhz {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <1000000>;
-			clock-output-names = "v2m:refclk1mhz";
-		};
-
-		v2m_refclk32khz: refclk32khz {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <32768>;
-			clock-output-names = "v2m:refclk32khz";
-		};
-
-		iofpga@3,00000000 {
-			compatible = "arm,amba-bus", "simple-bus";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			ranges = <0 3 0 0x200000>;
-
-			v2m_sysreg: sysreg@010000 {
-				compatible = "arm,vexpress-sysreg";
-				reg = <0x010000 0x1000>;
-				gpio-controller;
-				#gpio-cells = <2>;
-			};
-
-			v2m_sysctl: sysctl@020000 {
-				compatible = "arm,sp810", "arm,primecell";
-				reg = <0x020000 0x1000>;
-				clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
-				clock-names = "refclk", "timclk", "apb_pclk";
-				#clock-cells = <1>;
-				clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
-			};
-
-			aaci@040000 {
-				compatible = "arm,pl041", "arm,primecell";
-				reg = <0x040000 0x1000>;
-				interrupts = <11>;
-				clocks = <&v2m_clk24mhz>;
-				clock-names = "apb_pclk";
-			};
-
-			mmci@050000 {
-				compatible = "arm,pl180", "arm,primecell";
-				reg = <0x050000 0x1000>;
-				interrupts = <9 10>;
-				cd-gpios = <&v2m_sysreg 0 0>;
-				wp-gpios = <&v2m_sysreg 1 0>;
-				max-frequency = <12000000>;
-				vmmc-supply = <&v2m_fixed_3v3>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "mclk", "apb_pclk";
-			};
-
-			kmi@060000 {
-				compatible = "arm,pl050", "arm,primecell";
-				reg = <0x060000 0x1000>;
-				interrupts = <12>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "KMIREFCLK", "apb_pclk";
-			};
-
-			kmi@070000 {
-				compatible = "arm,pl050", "arm,primecell";
-				reg = <0x070000 0x1000>;
-				interrupts = <13>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "KMIREFCLK", "apb_pclk";
-			};
-
-			v2m_serial0: uart@090000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x090000 0x1000>;
-				interrupts = <5>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			v2m_serial1: uart@0a0000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x0a0000 0x1000>;
-				interrupts = <6>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			v2m_serial2: uart@0b0000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x0b0000 0x1000>;
-				interrupts = <7>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			v2m_serial3: uart@0c0000 {
-				compatible = "arm,pl011", "arm,primecell";
-				reg = <0x0c0000 0x1000>;
-				interrupts = <8>;
-				clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
-				clock-names = "uartclk", "apb_pclk";
-			};
-
-			wdt@0f0000 {
-				compatible = "arm,sp805", "arm,primecell";
-				reg = <0x0f0000 0x1000>;
-				interrupts = <0>;
-				clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
-				clock-names = "wdogclk", "apb_pclk";
-			};
-
-			v2m_timer01: timer@110000 {
-				compatible = "arm,sp804", "arm,primecell";
-				reg = <0x110000 0x1000>;
-				interrupts = <2>;
-				clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
-				clock-names = "timclken1", "timclken2", "apb_pclk";
-			};
-
-			v2m_timer23: timer@120000 {
-				compatible = "arm,sp804", "arm,primecell";
-				reg = <0x120000 0x1000>;
-				interrupts = <3>;
-				clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
-				clock-names = "timclken1", "timclken2", "apb_pclk";
-			};
-
-			rtc@170000 {
-				compatible = "arm,pl031", "arm,primecell";
-				reg = <0x170000 0x1000>;
-				interrupts = <4>;
-				clocks = <&v2m_clk24mhz>;
-				clock-names = "apb_pclk";
-			};
-
-			clcd@1f0000 {
-				compatible = "arm,pl111", "arm,primecell";
-				reg = <0x1f0000 0x1000>;
-				interrupts = <14>;
-				clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
-				clock-names = "clcdclk", "apb_pclk";
-			};
-
-			virtio_block@0130000 {
-				compatible = "virtio,mmio";
-				reg = <0x130000 0x200>;
-				interrupts = <42>;
-			};
-		};
-
-		v2m_fixed_3v3: fixedregulator@0 {
-			compatible = "regulator-fixed";
-			regulator-name = "3V3";
-			regulator-min-microvolt = <3300000>;
-			regulator-max-microvolt = <3300000>;
-			regulator-always-on;
-		};
-
-		mcc {
-			compatible = "arm,vexpress,config-bus";
-			arm,vexpress,config-bridge = <&v2m_sysreg>;
-
-			v2m_oscclk1: osc@1 {
-				/* CLCD clock */
-				compatible = "arm,vexpress-osc";
-				arm,vexpress-sysreg,func = <1 1>;
-				freq-range = <23750000 63500000>;
-				#clock-cells = <0>;
-				clock-output-names = "v2m:oscclk1";
-			};
-
-			reset@0 {
-				compatible = "arm,vexpress-reset";
-				arm,vexpress-sysreg,func = <5 0>;
-			};
-
-			muxfpga@0 {
-				compatible = "arm,vexpress-muxfpga";
-				arm,vexpress-sysreg,func = <7 0>;
-			};
-
-			shutdown@0 {
-				compatible = "arm,vexpress-shutdown";
-				arm,vexpress-sysreg,func = <8 0>;
-			};
-
-			reboot@0 {
-				compatible = "arm,vexpress-reboot";
-				arm,vexpress-sysreg,func = <9 0>;
-			};
-
-			dvimode@0 {
-				compatible = "arm,vexpress-dvimode";
-				arm,vexpress-sysreg,func = <11 0>;
-			};
-		};
-	};
-- 
2.0.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 6/6] dts, arm: Remove $(MACHINE) variable from dtbs make recipes
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
                   ` (4 preceding siblings ...)
  2014-09-05  6:48 ` [PATCH 5/6] dts, arm64: Move dts files to " Robert Richter
@ 2014-09-05  6:48 ` Robert Richter
  2014-09-17  3:49 ` [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Andrew Bresticker
  2014-10-21 18:15 ` Robert Richter
  7 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-09-05  6:48 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel, Robert Richter

From: Robert Richter <rrichter@cavium.com>

The machine description is not needed to build dtb files.

Signed-off-by: Robert Richter <rrichter@cavium.com>
---
 arch/arm/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 4d13c6d0a0cc..422c9aa34382 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -315,10 +315,10 @@ $(BOOT_TARGETS): vmlinux
 PHONY += dtbs dtbs_install
 
 dtbs: prepare scripts
-	$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE)
+	$(Q)$(MAKE) $(build)=$(boot)/dts
 
 dtbs_install:
-	$(Q)$(MAKE) $(dtbinst)=$(boot)/dts MACHINE=$(MACHINE)
+	$(Q)$(MAKE) $(dtbinst)=$(boot)/dts
 
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
-- 
2.0.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 5/6] dts, arm64: Move dts files to vendor subdirs
  2014-09-05  6:48 ` [PATCH 5/6] dts, arm64: Move dts files to " Robert Richter
@ 2014-09-05 12:46   ` Rob Herring
  0 siblings, 0 replies; 21+ messages in thread
From: Rob Herring @ 2014-09-05 12:46 UTC (permalink / raw)
  To: Robert Richter
  Cc: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann,
	Michal Marek, linux-arm-kernel, devicetree, linux-kbuild,
	linux-kernel, Robert Richter

On Fri, Sep 5, 2014 at 1:48 AM, Robert Richter <rric@kernel.org> wrote:
> From: Robert Richter <rrichter@cavium.com>
>
> Moving dts files to vendor subdirs.
>
> Signed-off-by: Robert Richter <rrichter@cavium.com>
> ---
>  arch/arm64/boot/dts/Makefile                     |   4 +-
>  arch/arm64/boot/dts/apm-mustang.dts              |  34 --
>  arch/arm64/boot/dts/apm-storm.dtsi               | 425 -----------------------
>  arch/arm64/boot/dts/apm/Makefile                 |   5 +
>  arch/arm64/boot/dts/apm/apm-mustang.dts          |  34 ++
>  arch/arm64/boot/dts/apm/apm-storm.dtsi           | 425 +++++++++++++++++++++++
>  arch/arm64/boot/dts/arm/Makefile                 |   6 +
>  arch/arm64/boot/dts/arm/foundation-v8.dts        | 232 +++++++++++++
>  arch/arm64/boot/dts/arm/rtsm_ve-aemv8a.dts       | 159 +++++++++
>  arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | 240 +++++++++++++
>  arch/arm64/boot/dts/foundation-v8.dts            | 232 -------------
>  arch/arm64/boot/dts/rtsm_ve-aemv8a.dts           | 159 ---------
>  arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi     | 240 -------------
>  13 files changed, 1103 insertions(+), 1092 deletions(-)

This should be sent with renames enabled (-M option). You can enable
it by default with this in your git config:

[diff]
        renames = true

Otherwise,

Acked-by: Rob Herring <robh@kernel.org>

Rob

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
  2014-09-05  6:48 ` [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst Robert Richter
@ 2014-09-05 12:48   ` Rob Herring
  2014-09-08  7:14     ` Robert Richter
  0 siblings, 1 reply; 21+ messages in thread
From: Rob Herring @ 2014-09-05 12:48 UTC (permalink / raw)
  To: Robert Richter
  Cc: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann,
	Michal Marek, linux-arm-kernel, devicetree, linux-kbuild,
	linux-kernel, Robert Richter

On Fri, Sep 5, 2014 at 1:48 AM, Robert Richter <rric@kernel.org> wrote:
> From: Robert Richter <rrichter@cavium.com>
>
> Move dtbs install rules to Makefile.dtbinst. This change is needed to
> implement support for dts vendor subdirs. The change makes Makefiles
> easier and smaller as no longer the dtbs_install rule needs to be
> defined. Another advantage is that install goals are not encoded in
> targets anymore (%.dtb_dtbinst_).
>
> Signed-off-by: Robert Richter <rrichter@cavium.com>
> ---
>  arch/arm/Makefile            |  6 +++++-
>  arch/arm/boot/dts/Makefile   |  2 --
>  arch/arm64/Makefile          |  6 +++++-
>  arch/arm64/boot/dts/Makefile |  2 --
>  scripts/Kbuild.include       |  6 ++++++
>  scripts/Makefile.dtbinst     | 38 ++++++++++++++++++++++++++++++++++++++
>  scripts/Makefile.lib         | 12 ------------
>  7 files changed, 54 insertions(+), 18 deletions(-)
>  create mode 100644 scripts/Makefile.dtbinst
>
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 0ce9d0f71f2a..1963d9a9a2c4 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -313,9 +313,13 @@ $(BOOT_TARGETS): vmlinux
>         $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
>
>  PHONY += dtbs dtbs_install
> -dtbs dtbs_install: prepare scripts
> +
> +dtbs: prepare scripts
>         $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@
>
> +dtbs_install:
> +       $(Q)$(MAKE) $(dtbinst)=$(boot)/dts MACHINE=$(MACHINE)

Can't you get rid of MACHINE here, too?

Rob

> +
>  # We use MRPROPER_FILES and CLEAN_FILES now
>  archclean:
>         $(Q)$(MAKE) $(clean)=$(boot)
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index b8c5cd3ddeb9..ab40afb87fb2 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -502,5 +502,3 @@ dtbs: $(addprefix $(obj)/, $(dtb-y))
>         $(Q)rm -f $(obj)/../*.dtb
>
>  clean-files := *.dtb
> -
> -dtbs_install: $(addsuffix _dtbinst_, $(dtb-y))
> diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
> index e0a8292bc832..1627861e9bbd 100644
> --- a/arch/arm64/Makefile
> +++ b/arch/arm64/Makefile
> @@ -72,9 +72,13 @@ zinstall install: vmlinux
>         $(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@
>
>  PHONY += dtbs dtbs_install
> -dtbs dtbs_install: prepare scripts
> +
> +dtbs: prepare scripts
>         $(Q)$(MAKE) $(build)=$(boot)/dts $@
>
> +dtbs_install:
> +       $(Q)$(MAKE) $(dtbinst)=$(boot)/dts
> +
>  PHONY += vdso_install
>  vdso_install:
>         $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
> diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile
> index 82e1c4cf8780..0a14c3828301 100644
> --- a/arch/arm64/boot/dts/Makefile
> +++ b/arch/arm64/boot/dts/Makefile
> @@ -7,5 +7,3 @@ targets += $(dtb-y)
>  dtbs: $(addprefix $(obj)/, $(dtb-y))
>
>  clean-files := *.dtb
> -
> -dtbs_install: $(addsuffix _dtbinst_, $(dtb-y))
> diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
> index 8a9a4e1c7eab..861f5b4d48a2 100644
> --- a/scripts/Kbuild.include
> +++ b/scripts/Kbuild.include
> @@ -179,6 +179,12 @@ build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
>  # $(Q)$(MAKE) $(modbuiltin)=dir
>  modbuiltin := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.modbuiltin obj
>
> +###
> +# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.dtbinst obj=
> +# Usage:
> +# $(Q)$(MAKE) $(dtbinst)=dir
> +dtbinst := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.dtbinst obj
> +
>  # Prefix -I with $(srctree) if it is not an absolute path.
>  # skip if -I has no parameter
>  addtree = $(if $(patsubst -I%,%,$(1)), \
> diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst
> new file mode 100644
> index 000000000000..54286cccc289
> --- /dev/null
> +++ b/scripts/Makefile.dtbinst
> @@ -0,0 +1,38 @@
> +# ==========================================================================
> +# Installing dtb files
> +#
> +# Installs all dtb files listed in $(dtb-y) either in the
> +# INSTALL_DTBS_PATH directory or the default location:
> +#
> +#   $INSTALL_PATH/dtbs/$KERNELRELEASE
> +#
> +# ==========================================================================
> +
> +src := $(obj)
> +
> +PHONY := __dtbs_install
> +__dtbs_install:
> +
> +include include/config/auto.conf
> +include scripts/Kbuild.include
> +include $(srctree)/$(obj)/Makefile
> +
> +PHONY += __dtbs_install_prep
> +__dtbs_install_prep:
> +       $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
> +       $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
> +       $(Q)mkdir -p $(INSTALL_DTBS_PATH)
> +
> +dtbinst-files  := $(dtb-y)
> +
> +# Helper targets for Installing DTBs into the boot directory
> +quiet_cmd_dtb_install =        INSTALL $<
> +      cmd_dtb_install =        cp $< $(2)
> +
> +$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep
> +       $(call cmd,dtb_install,$(INSTALL_DTBS_PATH))
> +
> +PHONY += $(dtbinst-files)
> +__dtbs_install: $(dtbinst-files)
> +
> +.PHONY: $(PHONY)
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 260bf8acfce9..83a453794266 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -274,18 +274,6 @@ $(obj)/%.dtb: $(src)/%.dts FORCE
>
>  dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)
>
> -# Helper targets for Installing DTBs into the boot directory
> -quiet_cmd_dtb_install =        INSTALL $<
> -      cmd_dtb_install =        cp $< $(2)
> -
> -_dtbinst_pre_:
> -       $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
> -       $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
> -       $(Q)mkdir -p $(INSTALL_DTBS_PATH)
> -
> -%.dtb_dtbinst_: $(obj)/%.dtb _dtbinst_pre_
> -       $(call cmd,dtb_install,$(INSTALL_DTBS_PATH))
> -
>  # Bzip2
>  # ---------------------------------------------------------------------------
>
> --
> 2.0.1
>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
  2014-09-05 12:48   ` Rob Herring
@ 2014-09-08  7:14     ` Robert Richter
  0 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-09-08  7:14 UTC (permalink / raw)
  To: Rob Herring
  Cc: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann,
	Michal Marek, linux-arm-kernel, devicetree, linux-kbuild,
	linux-kernel, Robert Richter

On 05.09.14 07:48:30, Rob Herring wrote:
> On Fri, Sep 5, 2014 at 1:48 AM, Robert Richter <rric@kernel.org> wrote:
> > From: Robert Richter <rrichter@cavium.com>
> >
> > Move dtbs install rules to Makefile.dtbinst. This change is needed to
> > implement support for dts vendor subdirs. The change makes Makefiles
> > easier and smaller as no longer the dtbs_install rule needs to be
> > defined. Another advantage is that install goals are not encoded in
> > targets anymore (%.dtb_dtbinst_).
> >
> > Signed-off-by: Robert Richter <rrichter@cavium.com>
> > ---
> >  arch/arm/Makefile            |  6 +++++-
> >  arch/arm/boot/dts/Makefile   |  2 --
> >  arch/arm64/Makefile          |  6 +++++-
> >  arch/arm64/boot/dts/Makefile |  2 --
> >  scripts/Kbuild.include       |  6 ++++++
> >  scripts/Makefile.dtbinst     | 38 ++++++++++++++++++++++++++++++++++++++
> >  scripts/Makefile.lib         | 12 ------------
> >  7 files changed, 54 insertions(+), 18 deletions(-)
> >  create mode 100644 scripts/Makefile.dtbinst
> >
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > index 0ce9d0f71f2a..1963d9a9a2c4 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -313,9 +313,13 @@ $(BOOT_TARGETS): vmlinux
> >         $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
> >
> >  PHONY += dtbs dtbs_install
> > -dtbs dtbs_install: prepare scripts
> > +
> > +dtbs: prepare scripts
> >         $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $@
> >
> > +dtbs_install:
> > +       $(Q)$(MAKE) $(dtbinst)=$(boot)/dts MACHINE=$(MACHINE)
> 
> Can't you get rid of MACHINE here, too?

I moved this change to the end of this patch series to let maintainers
the choise to drop the change if they are not fine with it.

-Robert

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
                   ` (5 preceding siblings ...)
  2014-09-05  6:48 ` [PATCH 6/6] dts, arm: Remove $(MACHINE) variable from dtbs make recipes Robert Richter
@ 2014-09-17  3:49 ` Andrew Bresticker
  2014-09-19 12:30   ` Robert Richter
  2014-10-21 18:15 ` Robert Richter
  7 siblings, 1 reply; 21+ messages in thread
From: Andrew Bresticker @ 2014-09-17  3:49 UTC (permalink / raw)
  To: Robert Richter
  Cc: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann,
	Michal Marek, linux-arm-kernel, devicetree, linux-kbuild,
	linux-kernel, Robert Richter

Robert,

> For arm64 we want to put dts files into vendor's subdirectories from
> the beginning. This patch set implements this. As this is a generic
> kbuild implementation, vendor subdirs will be also available for
> arch/arm and other architectures. The subdirectory tree is also
> reflected in the install path.
>
> A new makefile variable dts-dirs is introduced to point to dts
> subdirs. This variable is used by kbuild for building and installation
> of dtb files.
>
> A dts Makefile looks now as follows:
>
> ----
> dtb-$(CONFIG_...) += some_file_1.dtb
> dtb-$(CONFIG_...) += some_file_2.dtb
>
> dts-dirs          += dir_vendor_a
> dts-dirs          += dir_vendor_b
>
> # come always afterwards:
> always         := $(dtb-y)
> subdir-y       := $(dts-dirs)
> clean-files    := *.dtb
> ----
>
> This patches also introduces the dtbs_install make target for
> arm64. Install rules are moved to Makefile.dtbinst using the same
> style and calling convention like for modinst and fwinst.
>
> Robert Richter (6):
>   dts, arm64: Add dtbs_install make target
>   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
>   dts, arm/arm64: Remove dtbs build rules in sub-makes
>   dts, kbuild: Implement support for dtb vendor subdirs
>   dts, arm64: Move dts files to vendor subdirs
>   dts, arm: Remove $(MACHINE) variable from dtbs make recipes

I've tested this for arm64 and by adding a vendor sub-directory
locally for arm.  This series is also the base for my MIPS DT vendor
sub-directory series
(http://www.linux-mips.org/archives/linux-mips/2014-09/msg00217.html).
So, for the entire series,

Tested-by: Andrew Bresticker <abrestic@chromium.org>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-17  3:49 ` [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Andrew Bresticker
@ 2014-09-19 12:30   ` Robert Richter
  2014-09-19 14:08     ` Catalin Marinas
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Richter @ 2014-09-19 12:30 UTC (permalink / raw)
  To: Andrew Bresticker
  Cc: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann,
	Michal Marek, linux-arm-kernel, devicetree, linux-kbuild,
	linux-kernel, Robert Richter

On 16.09.14 20:49:18, Andrew Bresticker wrote:

> > Robert Richter (6):
> >   dts, arm64: Add dtbs_install make target
> >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> >   dts, kbuild: Implement support for dtb vendor subdirs
> >   dts, arm64: Move dts files to vendor subdirs
> >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
> 
> I've tested this for arm64 and by adding a vendor sub-directory
> locally for arm.  This series is also the base for my MIPS DT vendor
> sub-directory series
> (http://www.linux-mips.org/archives/linux-mips/2014-09/msg00217.html).
> So, for the entire series,
> 
> Tested-by: Andrew Bresticker <abrestic@chromium.org>

Andrew, thanks for testing and great this also works on mips.

Anyone willing to take the patches for 3.18? Are any further acks
needed?

Thanks,

-Robert

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-19 12:30   ` Robert Richter
@ 2014-09-19 14:08     ` Catalin Marinas
  2014-09-23 11:26       ` Robert Richter
  0 siblings, 1 reply; 21+ messages in thread
From: Catalin Marinas @ 2014-09-19 14:08 UTC (permalink / raw)
  To: Robert Richter
  Cc: Andrew Bresticker, Mark Rutland, Michal Marek, Arnd Bergmann,
	devicetree, linux-kbuild, linux-kernel, Robert Richter,
	Rob Herring, Olof Johansson, linux-arm-kernel

On Fri, Sep 19, 2014 at 01:30:56PM +0100, Robert Richter wrote:
> On 16.09.14 20:49:18, Andrew Bresticker wrote:
> > > Robert Richter (6):
> > >   dts, arm64: Add dtbs_install make target
> > >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> > >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> > >   dts, kbuild: Implement support for dtb vendor subdirs
> > >   dts, arm64: Move dts files to vendor subdirs
> > >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
> > 
> > I've tested this for arm64 and by adding a vendor sub-directory
> > locally for arm.  This series is also the base for my MIPS DT vendor
> > sub-directory series
> > (http://www.linux-mips.org/archives/linux-mips/2014-09/msg00217.html).
> > So, for the entire series,
> > 
> > Tested-by: Andrew Bresticker <abrestic@chromium.org>
> 
> Andrew, thanks for testing and great this also works on mips.
> 
> Anyone willing to take the patches for 3.18? Are any further acks
> needed?

For the arm64 bits in this series:

Acked-by: Catalin Marinas <catalin.marinas@arm.com>

I think the patches can be merged via arm-soc.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-19 14:08     ` Catalin Marinas
@ 2014-09-23 11:26       ` Robert Richter
  2014-10-02 15:08         ` [GIT PULL] " Robert Richter
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Richter @ 2014-09-23 11:26 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Catalin Marinas, Andrew Bresticker, Michal Marek, Mark Rutland,
	Arnd Bergmann, devicetree, linux-kbuild, linux-kernel,
	Robert Richter, Rob Herring, linux-arm-kernel

On 19.09.14 15:08:56, Catalin Marinas wrote:
> On Fri, Sep 19, 2014 at 01:30:56PM +0100, Robert Richter wrote:
> > On 16.09.14 20:49:18, Andrew Bresticker wrote:
> > > > Robert Richter (6):
> > > >   dts, arm64: Add dtbs_install make target
> > > >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> > > >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> > > >   dts, kbuild: Implement support for dtb vendor subdirs
> > > >   dts, arm64: Move dts files to vendor subdirs
> > > >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
> > > 
> > > I've tested this for arm64 and by adding a vendor sub-directory
> > > locally for arm.  This series is also the base for my MIPS DT vendor
> > > sub-directory series
> > > (http://www.linux-mips.org/archives/linux-mips/2014-09/msg00217.html).
> > > So, for the entire series,
> > > 
> > > Tested-by: Andrew Bresticker <abrestic@chromium.org>
> > 
> > Andrew, thanks for testing and great this also works on mips.
> > 
> > Anyone willing to take the patches for 3.18? Are any further acks
> > needed?
> 
> For the arm64 bits in this series:
> 
> Acked-by: Catalin Marinas <catalin.marinas@arm.com>
> 
> I think the patches can be merged via arm-soc.

Olof,

please apply the patches.

Thanks,

-Robert

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-23 11:26       ` Robert Richter
@ 2014-10-02 15:08         ` Robert Richter
  2014-10-20 13:56           ` Abhilash Kesavan
  0 siblings, 1 reply; 21+ messages in thread
From: Robert Richter @ 2014-10-02 15:08 UTC (permalink / raw)
  To: Olof Johansson, Arnd Bergmann
  Cc: Catalin Marinas, Andrew Bresticker, Michal Marek, Mark Rutland,
	devicetree, linux-kbuild, linux-kernel, Robert Richter,
	Rob Herring, linux-arm-kernel

On 23.09.14 13:26:19, Robert Richter wrote:
> On 19.09.14 15:08:56, Catalin Marinas wrote:
> > On Fri, Sep 19, 2014 at 01:30:56PM +0100, Robert Richter wrote:
> > > On 16.09.14 20:49:18, Andrew Bresticker wrote:
> > > > > Robert Richter (6):
> > > > >   dts, arm64: Add dtbs_install make target
> > > > >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> > > > >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> > > > >   dts, kbuild: Implement support for dtb vendor subdirs
> > > > >   dts, arm64: Move dts files to vendor subdirs
> > > > >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
> > > > 
> > > > I've tested this for arm64 and by adding a vendor sub-directory
> > > > locally for arm.  This series is also the base for my MIPS DT vendor
> > > > sub-directory series
> > > > (http://www.linux-mips.org/archives/linux-mips/2014-09/msg00217.html).
> > > > So, for the entire series,
> > > > 
> > > > Tested-by: Andrew Bresticker <abrestic@chromium.org>
> > > 
> > > Andrew, thanks for testing and great this also works on mips.
> > > 
> > > Anyone willing to take the patches for 3.18? Are any further acks
> > > needed?
> > 
> > For the arm64 bits in this series:
> > 
> > Acked-by: Catalin Marinas <catalin.marinas@arm.com>
> > 
> > I think the patches can be merged via arm-soc.
> 
> Olof,
> 
> please apply the patches.

Olof, Arnd,

you may want to pull from here alternatively.

Thanks,

-Robert


The following changes since commit a497c3ba1d97fc69c1e78e7b96435ba8c2cb42ee:

  Linux 3.16-rc2 (2014-06-21 19:02:54 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git tags/dts-subdirs-for-arm-soc-v3.18

for you to fetch changes up to 87bdf4d8625e50d99b56aa2590a2261049a5fd48:

  dts, arm: Remove $(MACHINE) variable from dtbs make recipes (2014-09-03 21:46:49 +0200)

----------------------------------------------------------------
dts, kbuild: Implement support for dtb vendor subdirs

----------------------------------------------------------------
Robert Richter (6):
      dts, arm64: Add dtbs_install make target
      dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
      dts, arm/arm64: Remove dtbs build rules in sub-makes
      dts, kbuild: Implement support for dtb vendor subdirs
      dts, arm64: Move dts files to vendor subdirs
      dts, arm: Remove $(MACHINE) variable from dtbs make recipes

 arch/arm/Makefile                                  |  8 +++-
 arch/arm/boot/dts/Makefile                         | 12 +-----
 arch/arm64/Makefile                                | 10 ++++-
 arch/arm64/boot/dts/Makefile                       | 13 +++---
 arch/arm64/boot/dts/apm/Makefile                   |  5 +++
 arch/arm64/boot/dts/{ => apm}/apm-mustang.dts      |  0
 arch/arm64/boot/dts/{ => apm}/apm-storm.dtsi       |  0
 arch/arm64/boot/dts/arm/Makefile                   |  6 +++
 arch/arm64/boot/dts/{ => arm}/foundation-v8.dts    |  0
 arch/arm64/boot/dts/{ => arm}/rtsm_ve-aemv8a.dts   |  0
 .../boot/dts/{ => arm}/rtsm_ve-motherboard.dtsi    |  0
 scripts/Kbuild.include                             |  6 +++
 scripts/Makefile.dtbinst                           | 50 ++++++++++++++++++++++
 scripts/Makefile.lib                               | 12 ------
 14 files changed, 88 insertions(+), 34 deletions(-)
 create mode 100644 arch/arm64/boot/dts/apm/Makefile
 rename arch/arm64/boot/dts/{ => apm}/apm-mustang.dts (100%)
 rename arch/arm64/boot/dts/{ => apm}/apm-storm.dtsi (100%)
 create mode 100644 arch/arm64/boot/dts/arm/Makefile
 rename arch/arm64/boot/dts/{ => arm}/foundation-v8.dts (100%)
 rename arch/arm64/boot/dts/{ => arm}/rtsm_ve-aemv8a.dts (100%)
 rename arch/arm64/boot/dts/{ => arm}/rtsm_ve-motherboard.dtsi (100%)
 create mode 100644 scripts/Makefile.dtbinst

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-10-02 15:08         ` [GIT PULL] " Robert Richter
@ 2014-10-20 13:56           ` Abhilash Kesavan
  2014-10-20 15:24             ` Robert Richter
  0 siblings, 1 reply; 21+ messages in thread
From: Abhilash Kesavan @ 2014-10-20 13:56 UTC (permalink / raw)
  To: Robert Richter
  Cc: Olof Johansson, Arnd Bergmann, Catalin Marinas,
	Andrew Bresticker, Michal Marek, Mark Rutland, devicetree,
	linux-kbuild, linux-kernel, Robert Richter, Rob Herring,
	linux-arm-kernel

Hello Robert,

On Thu, Oct 2, 2014 at 8:38 PM, Robert Richter <rric@kernel.org> wrote:
> On 23.09.14 13:26:19, Robert Richter wrote:
>> On 19.09.14 15:08:56, Catalin Marinas wrote:
>> > On Fri, Sep 19, 2014 at 01:30:56PM +0100, Robert Richter wrote:
>> > > On 16.09.14 20:49:18, Andrew Bresticker wrote:
>> > > > > Robert Richter (6):
>> > > > >   dts, arm64: Add dtbs_install make target
>> > > > >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
>> > > > >   dts, arm/arm64: Remove dtbs build rules in sub-makes
>> > > > >   dts, kbuild: Implement support for dtb vendor subdirs
>> > > > >   dts, arm64: Move dts files to vendor subdirs
>> > > > >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
>> > > >
>> > > > I've tested this for arm64 and by adding a vendor sub-directory
>> > > > locally for arm.  This series is also the base for my MIPS DT vendor
>> > > > sub-directory series
>> > > > (http://www.linux-mips.org/archives/linux-mips/2014-09/msg00217.html).
>> > > > So, for the entire series,
>> > > >
>> > > > Tested-by: Andrew Bresticker <abrestic@chromium.org>
>> > >
>> > > Andrew, thanks for testing and great this also works on mips.
>> > >
>> > > Anyone willing to take the patches for 3.18? Are any further acks
>> > > needed?
>> >
>> > For the arm64 bits in this series:
>> >
>> > Acked-by: Catalin Marinas <catalin.marinas@arm.com>
>> >
>> > I think the patches can be merged via arm-soc.
>>
>> Olof,
>>
>> please apply the patches.
>
> Olof, Arnd,
>
> you may want to pull from here alternatively.

I have been using your patchset as the base for my new arm64 SoC
support (http://www.spinics.net/lists/linux-samsung-soc/msg37047.html).
Are you planning to rebase and send this again as some of the patches
did not apply cleanly for me on linux-next.

Regards,
Abhilash
>
> Thanks,
>
> -Robert
>
>
> The following changes since commit a497c3ba1d97fc69c1e78e7b96435ba8c2cb42ee:
>
>   Linux 3.16-rc2 (2014-06-21 19:02:54 -1000)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git tags/dts-subdirs-for-arm-soc-v3.18
>
> for you to fetch changes up to 87bdf4d8625e50d99b56aa2590a2261049a5fd48:
>
>   dts, arm: Remove $(MACHINE) variable from dtbs make recipes (2014-09-03 21:46:49 +0200)
>
> ----------------------------------------------------------------
> dts, kbuild: Implement support for dtb vendor subdirs
>
> ----------------------------------------------------------------
> Robert Richter (6):
>       dts, arm64: Add dtbs_install make target
>       dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
>       dts, arm/arm64: Remove dtbs build rules in sub-makes
>       dts, kbuild: Implement support for dtb vendor subdirs
>       dts, arm64: Move dts files to vendor subdirs
>       dts, arm: Remove $(MACHINE) variable from dtbs make recipes
>
>  arch/arm/Makefile                                  |  8 +++-
>  arch/arm/boot/dts/Makefile                         | 12 +-----
>  arch/arm64/Makefile                                | 10 ++++-
>  arch/arm64/boot/dts/Makefile                       | 13 +++---
>  arch/arm64/boot/dts/apm/Makefile                   |  5 +++
>  arch/arm64/boot/dts/{ => apm}/apm-mustang.dts      |  0
>  arch/arm64/boot/dts/{ => apm}/apm-storm.dtsi       |  0
>  arch/arm64/boot/dts/arm/Makefile                   |  6 +++
>  arch/arm64/boot/dts/{ => arm}/foundation-v8.dts    |  0
>  arch/arm64/boot/dts/{ => arm}/rtsm_ve-aemv8a.dts   |  0
>  .../boot/dts/{ => arm}/rtsm_ve-motherboard.dtsi    |  0
>  scripts/Kbuild.include                             |  6 +++
>  scripts/Makefile.dtbinst                           | 50 ++++++++++++++++++++++
>  scripts/Makefile.lib                               | 12 ------
>  14 files changed, 88 insertions(+), 34 deletions(-)
>  create mode 100644 arch/arm64/boot/dts/apm/Makefile
>  rename arch/arm64/boot/dts/{ => apm}/apm-mustang.dts (100%)
>  rename arch/arm64/boot/dts/{ => apm}/apm-storm.dtsi (100%)
>  create mode 100644 arch/arm64/boot/dts/arm/Makefile
>  rename arch/arm64/boot/dts/{ => arm}/foundation-v8.dts (100%)
>  rename arch/arm64/boot/dts/{ => arm}/rtsm_ve-aemv8a.dts (100%)
>  rename arch/arm64/boot/dts/{ => arm}/rtsm_ve-motherboard.dtsi (100%)
>  create mode 100644 scripts/Makefile.dtbinst
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-10-20 13:56           ` Abhilash Kesavan
@ 2014-10-20 15:24             ` Robert Richter
  0 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-10-20 15:24 UTC (permalink / raw)
  To: Abhilash Kesavan
  Cc: Robert Richter, Olof Johansson, Arnd Bergmann, Catalin Marinas,
	Andrew Bresticker, Michal Marek, Mark Rutland, devicetree,
	linux-kbuild, linux-kernel, Rob Herring, linux-arm-kernel

On 20.10.14 19:26:32, Abhilash Kesavan wrote:

> >> > > > > Robert Richter (6):
> >> > > > >   dts, arm64: Add dtbs_install make target
> >> > > > >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> >> > > > >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> >> > > > >   dts, kbuild: Implement support for dtb vendor subdirs
> >> > > > >   dts, arm64: Move dts files to vendor subdirs
> >> > > > >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes

> > you may want to pull from here alternatively.
> 
> I have been using your patchset as the base for my new arm64 SoC
> support (http://www.spinics.net/lists/linux-samsung-soc/msg37047.html).
> Are you planning to rebase and send this again as some of the patches
> did not apply cleanly for me on linux-next.

Yes, I will rebase it and resend the pull request this week.

-Robert

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
                   ` (6 preceding siblings ...)
  2014-09-17  3:49 ` [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Andrew Bresticker
@ 2014-10-21 18:15 ` Robert Richter
  2014-10-30 19:26   ` Robert Richter
  2014-11-04  4:47   ` Olof Johansson
  7 siblings, 2 replies; 21+ messages in thread
From: Robert Richter @ 2014-10-21 18:15 UTC (permalink / raw)
  To: Olof Johansson, Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek
  Cc: linux-arm-kernel, devicetree, linux-kbuild, linux-kernel,
	Robert Richter, Andrew Bresticker, Abhilash Kesavan

Arnd,

On 05.09.14 08:48:06, Robert Richter wrote:
> From: Robert Richter <rrichter@cavium.com>
> 
> For arm64 we want to put dts files into vendor's subdirectories from
> the beginning. This patch set implements this. As this is a generic
> kbuild implementation, vendor subdirs will be also available for
> arch/arm and other architectures. The subdirectory tree is also
> reflected in the install path.
> 
> A new makefile variable dts-dirs is introduced to point to dts
> subdirs. This variable is used by kbuild for building and installation
> of dtb files.
> 
> A dts Makefile looks now as follows:
> 
> ----
> dtb-$(CONFIG_...) += some_file_1.dtb
> dtb-$(CONFIG_...) += some_file_2.dtb
> 
> dts-dirs          += dir_vendor_a
> dts-dirs          += dir_vendor_b
> 
> # come always afterwards:
> always         := $(dtb-y)
> subdir-y       := $(dts-dirs)
> clean-files    := *.dtb
> ----
> 
> This patches also introduces the dtbs_install make target for
> arm64. Install rules are moved to Makefile.dtbinst using the same
> style and calling convention like for modinst and fwinst.
> 
> Robert Richter (6):
>   dts, arm64: Add dtbs_install make target
>   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
>   dts, arm/arm64: Remove dtbs build rules in sub-makes
>   dts, kbuild: Implement support for dtb vendor subdirs
>   dts, arm64: Move dts files to vendor subdirs
>   dts, arm: Remove $(MACHINE) variable from dtbs make recipes

please pull this series for inclusion into v3.19 from:

 git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git dts-subdirs-for-arm-soc-v3.19

I have updated and rebased the patches to v3.18-rc1. No changes except
conflict resolution of patch 5/6.

Thanks,

-Robert



The following changes since commit f114040e3ea6e07372334ade75d1ee0775c355e1:

  Linux 3.18-rc1 (2014-10-19 18:08:38 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git dts-subdirs-for-arm-soc-v3.19

for you to fetch changes up to 6f889d8ba125693778e05f0166b963cf08fed930:

  dts, arm: Remove $(MACHINE) variable from dtbs make recipes (2014-10-21 18:07:00 +0200)

----------------------------------------------------------------
dts, kbuild: Implement support for dtb vendor subdirs

----------------------------------------------------------------
Robert Richter (6):
      dts, arm64: Add dtbs_install make target
      dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
      dts, arm/arm64: Remove dtbs build rules in sub-makes
      dts, kbuild: Implement support for dtb vendor subdirs
      dts, arm64: Move dts files to vendor subdirs
      dts, arm: Remove $(MACHINE) variable from dtbs make recipes

 arch/arm/Makefile                                  |  8 +++-
 arch/arm/boot/dts/Makefile                         | 12 +----
 arch/arm64/Makefile                                | 10 ++++-
 arch/arm64/boot/dts/Makefile                       | 15 +++----
 arch/arm64/boot/dts/apm/Makefile                   |  5 +++
 arch/arm64/boot/dts/{ => apm}/apm-mustang.dts      |  0
 arch/arm64/boot/dts/{ => apm}/apm-storm.dtsi       |  0
 arch/arm64/boot/dts/arm/Makefile                   |  6 +++
 arch/arm64/boot/dts/{ => arm}/foundation-v8.dts    |  0
 arch/arm64/boot/dts/{ => arm}/rtsm_ve-aemv8a.dts   |  0
 .../boot/dts/{ => arm}/rtsm_ve-motherboard.dtsi    |  0
 arch/arm64/boot/dts/cavium/Makefile                |  5 +++
 arch/arm64/boot/dts/{ => cavium}/thunder-88xx.dts  |  0
 arch/arm64/boot/dts/{ => cavium}/thunder-88xx.dtsi |  0
 scripts/Kbuild.include                             |  6 +++
 scripts/Makefile.dtbinst                           | 51 ++++++++++++++++++++++
 scripts/Makefile.lib                               | 12 -----
 17 files changed, 95 insertions(+), 35 deletions(-)
 create mode 100644 arch/arm64/boot/dts/apm/Makefile
 rename arch/arm64/boot/dts/{ => apm}/apm-mustang.dts (100%)
 rename arch/arm64/boot/dts/{ => apm}/apm-storm.dtsi (100%)
 create mode 100644 arch/arm64/boot/dts/arm/Makefile
 rename arch/arm64/boot/dts/{ => arm}/foundation-v8.dts (100%)
 rename arch/arm64/boot/dts/{ => arm}/rtsm_ve-aemv8a.dts (100%)
 rename arch/arm64/boot/dts/{ => arm}/rtsm_ve-motherboard.dtsi (100%)
 create mode 100644 arch/arm64/boot/dts/cavium/Makefile
 rename arch/arm64/boot/dts/{ => cavium}/thunder-88xx.dts (100%)
 rename arch/arm64/boot/dts/{ => cavium}/thunder-88xx.dtsi (100%)
 create mode 100644 scripts/Makefile.dtbinst

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-10-21 18:15 ` Robert Richter
@ 2014-10-30 19:26   ` Robert Richter
  2014-11-04  4:47   ` Olof Johansson
  1 sibling, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-10-30 19:26 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Olof Johansson, Rob Herring, Mark Rutland, Michal Marek,
	linux-arm-kernel, devicetree, linux-kbuild, linux-kernel,
	Robert Richter, Andrew Bresticker, Abhilash Kesavan

Arnd,

On 21.10.14 20:15:04, Robert Richter wrote:
> please pull this series for inclusion into v3.19 from:
> 
>  git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git dts-subdirs-for-arm-soc-v3.19
> 
> I have updated and rebased the patches to v3.18-rc1. No changes except
> conflict resolution of patch 5/6.

have you had the chance to look at this?

Thanks,

-Robert

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-10-21 18:15 ` Robert Richter
  2014-10-30 19:26   ` Robert Richter
@ 2014-11-04  4:47   ` Olof Johansson
  2014-11-04 15:49     ` Robert Richter
  1 sibling, 1 reply; 21+ messages in thread
From: Olof Johansson @ 2014-11-04  4:47 UTC (permalink / raw)
  To: Robert Richter
  Cc: Rob Herring, Mark Rutland, Arnd Bergmann, Michal Marek,
	linux-arm-kernel, devicetree, linux-kbuild, linux-kernel,
	Robert Richter, Andrew Bresticker, Abhilash Kesavan

On Tue, Oct 21, 2014 at 08:15:04PM +0200, Robert Richter wrote:
> Arnd,
> 
> On 05.09.14 08:48:06, Robert Richter wrote:
> > From: Robert Richter <rrichter@cavium.com>
> > 
> > For arm64 we want to put dts files into vendor's subdirectories from
> > the beginning. This patch set implements this. As this is a generic
> > kbuild implementation, vendor subdirs will be also available for
> > arch/arm and other architectures. The subdirectory tree is also
> > reflected in the install path.
> > 
> > A new makefile variable dts-dirs is introduced to point to dts
> > subdirs. This variable is used by kbuild for building and installation
> > of dtb files.
> > 
> > A dts Makefile looks now as follows:
> > 
> > ----
> > dtb-$(CONFIG_...) += some_file_1.dtb
> > dtb-$(CONFIG_...) += some_file_2.dtb
> > 
> > dts-dirs          += dir_vendor_a
> > dts-dirs          += dir_vendor_b
> > 
> > # come always afterwards:
> > always         := $(dtb-y)
> > subdir-y       := $(dts-dirs)
> > clean-files    := *.dtb
> > ----
> > 
> > This patches also introduces the dtbs_install make target for
> > arm64. Install rules are moved to Makefile.dtbinst using the same
> > style and calling convention like for modinst and fwinst.
> > 
> > Robert Richter (6):
> >   dts, arm64: Add dtbs_install make target
> >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> >   dts, kbuild: Implement support for dtb vendor subdirs
> >   dts, arm64: Move dts files to vendor subdirs
> >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
> 
> please pull this series for inclusion into v3.19 from:
> 
>  git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git dts-subdirs-for-arm-soc-v3.19
> 
> I have updated and rebased the patches to v3.18-rc1. No changes except
> conflict resolution of patch 5/6.

Pulled, and I added the description from 0/6 as the merge text -- feel free to
add it to the tag if you do something like this in the future.


-Olof

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [GIT PULL] dts, kbuild: Implement support for dtb vendor subdirs
  2014-11-04  4:47   ` Olof Johansson
@ 2014-11-04 15:49     ` Robert Richter
  0 siblings, 0 replies; 21+ messages in thread
From: Robert Richter @ 2014-11-04 15:49 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Robert Richter, Rob Herring, Mark Rutland, Arnd Bergmann,
	Michal Marek, linux-arm-kernel, devicetree, linux-kbuild,
	linux-kernel, Andrew Bresticker, Abhilash Kesavan

On 03.11.14 20:47:17, Olof Johansson wrote:
> > > Robert Richter (6):
> > >   dts, arm64: Add dtbs_install make target
> > >   dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst
> > >   dts, arm/arm64: Remove dtbs build rules in sub-makes
> > >   dts, kbuild: Implement support for dtb vendor subdirs
> > >   dts, arm64: Move dts files to vendor subdirs
> > >   dts, arm: Remove $(MACHINE) variable from dtbs make recipes
> > 
> > please pull this series for inclusion into v3.19 from:
> > 
> >  git://git.kernel.org/pub/scm/linux/kernel/git/rric/linux.git dts-subdirs-for-arm-soc-v3.19
> > 
> > I have updated and rebased the patches to v3.18-rc1. No changes except
> > conflict resolution of patch 5/6.
> 
> Pulled, and I added the description from 0/6 as the merge text -- feel free to
> add it to the tag if you do something like this in the future.

Thanks for pulling and the hint on the tag description (I was
wondering what to put in there).

-Robert

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2014-11-04 15:51 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-05  6:48 [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
2014-09-05  6:48 ` [PATCH 1/6] dts, arm64: Add dtbs_install make target Robert Richter
2014-09-05  6:48 ` [PATCH 2/6] dts, kbuild: Factor out dtbs install rules to Makefile.dtbinst Robert Richter
2014-09-05 12:48   ` Rob Herring
2014-09-08  7:14     ` Robert Richter
2014-09-05  6:48 ` [PATCH 3/6] dts, arm/arm64: Remove dtbs build rules in sub-makes Robert Richter
2014-09-05  6:48 ` [PATCH 4/6] dts, kbuild: Implement support for dtb vendor subdirs Robert Richter
2014-09-05  6:48 ` [PATCH 5/6] dts, arm64: Move dts files to " Robert Richter
2014-09-05 12:46   ` Rob Herring
2014-09-05  6:48 ` [PATCH 6/6] dts, arm: Remove $(MACHINE) variable from dtbs make recipes Robert Richter
2014-09-17  3:49 ` [PATCH 0/6] dts, kbuild: Implement support for dtb vendor subdirs Andrew Bresticker
2014-09-19 12:30   ` Robert Richter
2014-09-19 14:08     ` Catalin Marinas
2014-09-23 11:26       ` Robert Richter
2014-10-02 15:08         ` [GIT PULL] " Robert Richter
2014-10-20 13:56           ` Abhilash Kesavan
2014-10-20 15:24             ` Robert Richter
2014-10-21 18:15 ` Robert Richter
2014-10-30 19:26   ` Robert Richter
2014-11-04  4:47   ` Olof Johansson
2014-11-04 15:49     ` Robert Richter

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).