--- a/tools/mkimage.c
+++ b/tools/mkimage.c
-@@ -37,6 +37,7 @@
+@@ -37,6 +37,7 @@ struct mkimage_params params = {
.arch = IH_ARCH_PPC,
.type = IH_TYPE_KERNEL,
.comp = IH_COMP_GZIP,
.dtc = MKIMAGE_DEFAULT_DTC_OPTIONS,
.imagename = "",
.imagename2 = "",
-@@ -189,6 +190,16 @@
+@@ -189,6 +190,16 @@ main (int argc, char **argv)
genimg_get_comp_id (*++argv)) < 0)
usage ();
goto NXTARG;
case 'D':
if (--argc <= 0)
usage ();
-@@ -613,12 +624,13 @@
+@@ -613,12 +624,13 @@ usage ()
fprintf (stderr, "Usage: %s -l image\n"
" -l ==> list image header information\n",
params.cmdname);
" -n ==> set image name to 'name'\n"
--- a/tools/mkimage.h
+++ b/tools/mkimage.h
-@@ -65,6 +65,7 @@
+@@ -65,6 +65,7 @@ struct mkimage_params {
int arch;
int type;
int comp;
unsigned int ep;
--- a/tools/default_image.c
+++ b/tools/default_image.c
-@@ -111,7 +111,7 @@
+@@ -111,7 +111,7 @@ static void image_set_header(void *ptr,
sbuf->st_size - sizeof(image_header_t));
/* Build new header */
+++ /dev/null
---- a/tools/Makefile
-+++ b/tools/Makefile
-@@ -162,9 +162,9 @@
- # Use native tools and options
- # Define __KERNEL_STRICT_NAMES to prevent typedef overlaps
- #
--HOSTCPPFLAGS = -idirafter $(SRCTREE)/include \
-+HOSTCPPFLAGS = -I $(SRCTREE)/include \
- -idirafter $(OBJTREE)/include2 \
-- -idirafter $(OBJTREE)/include \
-+ -I $(OBJTREE)/include \
- -I $(SRCTREE)/lib/libfdt \
- -I $(SRCTREE)/tools \
- -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE) \
--- /dev/null
+--- a/doc/mkimage.1
++++ b/doc/mkimage.1
+@@ -82,6 +82,10 @@
+ .B Create FIT image:
+
+ .TP
++.BI "\-B [" "dtc bin" "]"
++Set path to the device tree compiler binary.
++
++.TP
+ .BI "\-D [" "dtc options" "]"
+ Provide special options to the device tree compiler that is used to
+ create the image.
+--- a/tools/fit_image.c
++++ b/tools/fit_image.c
+@@ -82,7 +82,8 @@
+
+ /* dtc -I dts -O dtb -p 500 datafile > tmpfile */
+ sprintf (cmd, "%s %s %s > %s",
+- MKIMAGE_DTC, params->dtc, params->datafile, tmpfile);
++ params->dtc_bin, params->dtc_options, params->datafile,
++ tmpfile);
+ debug ("Trying to execute \"%s\"\n", cmd);
+ if (system (cmd) == -1) {
+ fprintf (stderr, "%s: system(%s) failed: %s\n",
+--- a/tools/mkimage.c
++++ b/tools/mkimage.c
+@@ -38,7 +38,8 @@
+ .type = IH_TYPE_KERNEL,
+ .comp = IH_COMP_GZIP,
+ .magic = IH_MAGIC,
+- .dtc = MKIMAGE_DEFAULT_DTC_OPTIONS,
++ .dtc_bin = MKIMAGE_DTC,
++ .dtc_options = MKIMAGE_DEFAULT_DTC_OPTIONS,
+ .imagename = "",
+ .imagename2 = "",
+ };
+@@ -200,10 +201,15 @@
+ params.cmdname, *argv);
+ }
+ goto NXTARG;
++ case 'B':
++ if (--argc <= 0)
++ usage ();
++ params.dtc_bin = *++argv;
++ goto NXTARG;
+ case 'D':
+ if (--argc <= 0)
+ usage ();
+- params.dtc = *++argv;
++ params.dtc_options = *++argv;
+ goto NXTARG;
+
+ case 'O':
+@@ -637,7 +643,9 @@
+ " -d ==> use image data from 'datafile'\n"
+ " -x ==> set XIP (execute in place)\n",
+ params.cmdname);
+- fprintf (stderr, " %s [-D dtc_options] -f fit-image.its fit-image\n",
++ fprintf (stderr, " %s [-B dtc_bin] [-D dtc_options] -f fit-image.its fit-image\n",
++ " -B ==> set path to the dtc binary\n",
++ " -D ==> set options that will be passed to dtc\n",
+ params.cmdname);
+ fprintf (stderr, " %s -V ==> print version information and exit\n",
+ params.cmdname);
+--- a/tools/mkimage.h
++++ b/tools/mkimage.h
+@@ -46,7 +46,7 @@
+ #define MKIMAGE_MAX_TMPFILE_LEN 256
+ #define MKIMAGE_DEFAULT_DTC_OPTIONS "-I dts -O dtb -p 500"
+ #define MKIMAGE_MAX_DTC_CMDLINE_LEN 512
+-#define MKIMAGE_DTC "dtc" /* assume dtc is in $PATH */
++#define MKIMAGE_DTC "dtc"
+
+ /*
+ * This structure defines all such variables those are initialized by
+@@ -66,7 +66,8 @@
+ int type;
+ int comp;
+ unsigned int magic;
+- char *dtc;
++ char *dtc_bin;
++ char *dtc_options;
+ unsigned int addr;
+ unsigned int ep;
+ char *imagename;