summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2013-05-31 12:15:08 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2013-05-31 12:15:12 +0200
commit55d7491bb2ea1480dbf1d9f1983c450ad34adfa9 (patch)
tree0299a634d8ebb9cb85ea3c3bbd98270ca0c0d99e
parent22f6bda8475bd3c8a52f2adc5a213099b0be6bd0 (diff)
downloadptxdist-55d7491bb2ea1480dbf1d9f1983c450ad34adfa9.tar.gz
ptxdist-55d7491bb2ea1480dbf1d9f1983c450ad34adfa9.tar.xz
dtc: pre-process device-trees with cpp
This may be needed for device-trees from Linux v3.10 and later. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--rules/dtc.make26
1 files changed, 25 insertions, 1 deletions
diff --git a/rules/dtc.make b/rules/dtc.make
index c7a450fb4..027fc7b56 100644
--- a/rules/dtc.make
+++ b/rules/dtc.make
@@ -25,9 +25,33 @@ ptx/dtb = $(notdir $(basename $(strip $(1)))).dtb
%.dtb:
@$(call targetinfo)
+ @echo CPP `ptxd_print_path "$<.tmp"`
+ @cpp \
+ -Wp,-MD,$(STATEDIR)/dtc.dtc.deps \
+ -Wp,-MT,$<.tmp \
+ -nostdinc \
+ -I$(dir $<) \
+ -I$(KERNEL_DIR)/arch/$(KERNEL_ARCH)/boot/dts \
+ -I$(KERNEL_DIR)/arch/$(KERNEL_ARCH)/boot/dts/include \
+ -undef -D__DTS__ -x assembler-with-cpp \
+ -o $<.tmp \
+ $<
+ @echo DTC `ptxd_print_path "$@"`
@$(PTXCONF_SYSROOT_HOST)/bin/dtc \
$(call remove_quotes,$(PTXCONF_DTC_EXTRA_ARGS)) \
- -I dts -O dtb -o "$@" "$<"
+ -i $(dir $<) \
+ -i $(KERNEL_DIR)/arch/$(KERNEL_ARCH)/boot/dts \
+ -d $(PTXDIST_TEMPDIR)/dtc.dtc.deps \
+ -I dts -O dtb -b 0 \
+ -o "$@" "$<.tmp"
+ @awk '{ \
+ printf "%s", $$1 ; \
+ for (i = 2; i <= NF; i++) { \
+ printf " $$(wildcard %s)", $$i; \
+ }; \
+ print "" \
+ }' $(PTXDIST_TEMPDIR)/dtc.dtc.deps >> $(STATEDIR)/dtc.dtc.deps
+ @$(call finish)
DTC_DTB = $(foreach dts, $(call remove_quotes,$(PTXCONF_DTC_OFTREE_DTS)), $(IMAGEDIR)/$(call ptx/dtb, $(dts)))