Commit 323a028d39cd8df37b1c6a62ac04987647ae4b67

Authored by Robert Richter
1 parent d38726c485

dts, kbuild: Implement support for dtb vendor subdirs

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.

Tested-by: Andrew Bresticker <abrestic@chromium.org>
Signed-off-by: Robert Richter <rrichter@cavium.com>

Showing 2 changed files with 19 additions and 5 deletions Side-by-side Diff

arch/arm64/boot/dts/Makefile
... ... @@ -3,5 +3,6 @@
3 3 dtb-$(CONFIG_ARCH_XGENE) += apm-mustang.dtb
4 4  
5 5 always := $(dtb-y)
  6 +subdir-y := $(dts-dirs)
6 7 clean-files := *.dtb
scripts/Makefile.dtbinst
... ... @@ -6,6 +6,7 @@
6 6 #
7 7 # $INSTALL_PATH/dtbs/$KERNELRELEASE
8 8 #
  9 +# Traverse through subdirectories listed in $(dts-dirs).
9 10 # ==========================================================================
10 11  
11 12 src := $(obj)
12 13  
13 14  
14 15  
15 16  
16 17  
17 18  
... ... @@ -13,27 +14,39 @@
13 14 PHONY := __dtbs_install
14 15 __dtbs_install:
15 16  
  17 +export dtbinst-root ?= $(obj)
  18 +
16 19 include include/config/auto.conf
17 20 include scripts/Kbuild.include
18 21 include $(srctree)/$(obj)/Makefile
19 22  
20 23 PHONY += __dtbs_install_prep
21 24 __dtbs_install_prep:
  25 +ifeq ("$(dtbinst-root)", "$(obj)")
22 26 $(Q)if [ -d $(INSTALL_DTBS_PATH).old ]; then rm -rf $(INSTALL_DTBS_PATH).old; fi
23 27 $(Q)if [ -d $(INSTALL_DTBS_PATH) ]; then mv $(INSTALL_DTBS_PATH) $(INSTALL_DTBS_PATH).old; fi
24 28 $(Q)mkdir -p $(INSTALL_DTBS_PATH)
  29 +endif
25 30  
26 31 dtbinst-files := $(dtb-y)
  32 +dtbinst-dirs := $(dts-dirs)
27 33  
28 34 # Helper targets for Installing DTBs into the boot directory
29 35 quiet_cmd_dtb_install = INSTALL $<
30   - cmd_dtb_install = cp $< $(2)
  36 + cmd_dtb_install = mkdir -p $(2); cp $< $(2)
31 37  
32   -$(dtbinst-files): %.dtb: $(obj)/%.dtb | __dtbs_install_prep
33   - $(call cmd,dtb_install,$(INSTALL_DTBS_PATH))
  38 +install-dir = $(patsubst $(dtbinst-root)%,$(INSTALL_DTBS_PATH)%,$(obj))
34 39  
35   -PHONY += $(dtbinst-files)
36   -__dtbs_install: $(dtbinst-files)
  40 +$(dtbinst-files) $(dtbinst-dirs): | __dtbs_install_prep
  41 +
  42 +$(dtbinst-files): %.dtb: $(obj)/%.dtb
  43 + $(call cmd,dtb_install,$(install-dir))
  44 +
  45 +$(dtbinst-dirs):
  46 + $(Q)$(MAKE) $(dtbinst)=$(obj)/$@
  47 +
  48 +PHONY += $(dtbinst-files) $(dtbinst-dirs)
  49 +__dtbs_install: $(dtbinst-files) $(dtbinst-dirs)
37 50  
38 51 .PHONY: $(PHONY)