Skip to content

Commit

Permalink
dts, kbuild: Implement support for dtb vendor subdirs
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Robert Richter committed Oct 21, 2014
1 parent d38726c commit 323a028
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
1 change: 1 addition & 0 deletions arch/arm64/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,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
23 changes: 18 additions & 5 deletions scripts/Makefile.dtbinst
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,46 @@
#
# $INSTALL_PATH/dtbs/$KERNELRELEASE
#
# Traverse through subdirectories listed in $(dts-dirs).
# ==========================================================================

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)

0 comments on commit 323a028

Please sign in to comment.