--- a/ubi-utils/ubinize.c
+++ b/ubi-utils/ubinize.c
@@ -60,6 +60,8 @@ static const char optionsstr[] =
 "                             (default is 1)\n"
 "-Q, --image-seq=<num>        32-bit UBI image sequence number to use\n"
 "                             (by default a random number is picked)\n"
+"-E, --eof-markers=<num>      number of eof-markers to put at the end of the\n"
+"                             output image\n"
 "-v, --verbose                be verbose\n"
 "-h, --help                   print help message\n"
 "-V, --version                print program version\n\n";
@@ -79,6 +81,7 @@ static const struct option long_options[
 	{ .name = "erase-counter",  .has_arg = 1, .flag = NULL, .val = 'e' },
 	{ .name = "ubi-ver",        .has_arg = 1, .flag = NULL, .val = 'x' },
 	{ .name = "image-seq",      .has_arg = 1, .flag = NULL, .val = 'Q' },
+	{ .name = "eof-markers",    .has_arg = 1, .flag = NULL, .val = 'E' },
 	{ .name = "verbose",        .has_arg = 0, .flag = NULL, .val = 'v' },
 	{ .name = "help",           .has_arg = 0, .flag = NULL, .val = 'h' },
 	{ .name = "version",        .has_arg = 0, .flag = NULL, .val = 'V' },
@@ -98,6 +101,7 @@ struct args {
 	uint32_t image_seq;
 	int verbose;
 	dictionary *dict;
+	int eof_markers;
 };
 
 static struct args args = {
@@ -116,7 +120,7 @@ static int parse_opt(int argc, char * co
 		int key, error = 0;
 		unsigned long int image_seq;
 
-		key = getopt_long(argc, argv, "o:p:m:s:O:e:x:Q:vhV", long_options, NULL);
+		key = getopt_long(argc, argv, "o:p:m:s:O:e:x:Q:E:vhV", long_options, NULL);
 		if (key == -1)
 			break;
 
@@ -176,6 +180,12 @@ static int parse_opt(int argc, char * co
 			args.image_seq = image_seq;
 			break;
 
+		case 'E':
+			args.eof_markers = simple_strtoul(optarg, &error);
+			if (error)
+				return errmsg("bad number of eof-markers: \"%s\"", optarg);
+			break;
+
 		case 'v':
 			args.verbose = 1;
 			break;
@@ -582,6 +592,18 @@ int main(int argc, char * const argv[])
 			printf("\n");
 	}
 
+	if (args.eof_markers) {
+		verbose(args.verbose, "writing %d eof-marker blocks",
+			args.eof_markers);
+
+		err = ubigen_write_eof_markers(&ui, args.ec, args.eof_markers,
+					       args.out_fd);
+		if (err) {
+			errmsg("cannot write eof-marker blocks");
+			goto out_free;
+		}
+	}
+
 	verbose(args.verbose, "writing layout volume");
 
 	err = ubigen_write_layout_vol(&ui, 0, 1, args.ec, args.ec, vtbl, args.out_fd);
