openwrt/tools/mkimage/patches/100-dtc-binary.patch

87 lines
2.3 KiB
Diff

--- 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;