mkimage: Support automatic creating of a FIT without a .its

At present, when generating a FIT, mkimage requires a .its file containing
the structure of the FIT and referring to the images to be included.

Creating the .its file is a separate step that makes it harder to use FIT.
This is not required for creating legacy images.

Often the FIT is pretty standard, consisting of an OS image, some device
tree files and a single configuration. We can handle this case automatically
and avoid needing a .its file at all.

To start with, support automatically generate the FIT using a new '-f auto'
option. Initially this only supports adding a single image (e.g. a linux
kernel) and a single configuration.

Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 4526da2..7add86c 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -85,7 +85,7 @@
 		"          -x ==> set XIP (execute in place)\n",
 		params.cmdname);
 	fprintf(stderr,
-		"       %s [-D dtc_options] [-f fit-image.its|-F] fit-image\n",
+		"       %s [-D dtc_options] [-f fit-image.its|-f auto|-F] fit-image\n",
 		params.cmdname);
 	fprintf(stderr,
 		"          -D => set all options for device tree compiler\n"
@@ -159,7 +159,8 @@
 			params.eflag = 1;
 			break;
 		case 'f':
-			params.datafile = optarg;
+			datafile = optarg;
+			params.auto_its = !strcmp(datafile, "auto");
 			/* no break */
 		case 'F':
 			/*
@@ -235,7 +236,8 @@
 	 */
 	if (params.type == IH_TYPE_FLATDT) {
 		params.fit_image_type = type;
-		params.datafile = datafile;
+		if (!params.auto_its)
+			params.datafile = datafile;
 	} else if (type != IH_TYPE_INVALID) {
 		params.type = type;
 	}