summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2013-07-24 10:09:16 -0700
committerTom Rini <trini@ti.com>2013-08-02 18:29:32 -0400
commit501ebdf28666b3142a27c4b4fe6b76a159564ffd (patch)
tree2d1b7cd2ee1ba1ec3469e7d48c6748fbf43d0b02
parent245d65b6e503f3a159cffb3392ac3b2c25606d8e (diff)
downloadu-boot-501ebdf28666b3142a27c4b4fe6b76a159564ffd.tar.gz
u-boot-501ebdf28666b3142a27c4b4fe6b76a159564ffd.tar.xz
u-boot-501ebdf28666b3142a27c4b4fe6b76a159564ffd.zip
Validate dtc is new enough
Subsequent patches assume that dtc supports various recent features. These are available in dtc 1.4.0. Validate that dtc is at least that version. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r--Makefile8
-rw-r--r--config.mk1
-rwxr-xr-xtools/dtc-version.sh20
3 files changed, 28 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 7206abac1f..d545d306fd 100644
--- a/Makefile
+++ b/Makefile
@@ -413,7 +413,7 @@ endif
all: $(ALL-y) $(SUBDIR_EXAMPLES)
-$(obj)u-boot.dtb: $(obj)u-boot
+$(obj)u-boot.dtb: checkdtc $(obj)u-boot
$(MAKE) -C dts binary
mv $(obj)dts/dt.dtb $@
@@ -667,6 +667,12 @@ checkgcc4:
false; \
fi
+checkdtc:
+ @if test $(call dtc-version) -lt 0104; then \
+ echo '*** Your dtc is too old, please upgrade to dtc 1.4 or newer'; \
+ false; \
+ fi
+
#
# Auto-generate the autoconf.mk file (which is included by all makefiles)
#
diff --git a/config.mk b/config.mk
index 499eed1348..3e84f36d83 100644
--- a/config.mk
+++ b/config.mk
@@ -119,6 +119,7 @@ endif
# Usage gcc-ver := $(call cc-version)
cc-version = $(shell $(SHELL) $(SRCTREE)/tools/gcc-version.sh $(CC))
binutils-version = $(shell $(SHELL) $(SRCTREE)/tools/binutils-version.sh $(AS))
+dtc-version = $(shell $(SHELL) $(SRCTREE)/tools/dtc-version.sh $(DTC))
#
# Include the make variables (CC, etc...)
diff --git a/tools/dtc-version.sh b/tools/dtc-version.sh
new file mode 100755
index 0000000000..e8c94d390b
--- /dev/null
+++ b/tools/dtc-version.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# dtc-version dtc-command
+#
+# Prints the dtc version of `dtc-command' in a canonical 4-digit form
+# such as `0222' for binutils 2.22
+#
+
+dtc="$*"
+
+if [ ${#dtc} -eq 0 ]; then
+ echo "Error: No dtc command specified."
+ printf "Usage:\n\t$0 <dtc-command>\n"
+ exit 1
+fi
+
+MAJOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 1)
+MINOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 2)
+
+printf "%02d%02d\\n" $MAJOR $MINOR