diff --git a/tools/ifdtool.c b/tools/ifdtool.c
index a4b481f..f81e5c8 100644
--- a/tools/ifdtool.c
+++ b/tools/ifdtool.c
@@ -732,6 +732,7 @@
 	       "   -x | --extract:                   extract intel fd modules\n"
 	       "   -i | --inject <region>:<module>   inject file <module> into region <region>\n"
 	       "   -w | --write <addr>:<file>        write file to appear at memory address <addr>\n"
+	       "                                     multiple files can be written simultaneously\n"
 	       "   -s | --spifreq <20|33|50>         set the SPI frequency\n"
 	       "   -e | --em100                      set SPI frequency to 20MHz and disable\n"
 	       "                                     Dual Output Fast Read Support\n"
@@ -782,7 +783,9 @@
 	char *addr_str = NULL;
 	int region_type = -1, inputfreq = 0;
 	enum spi_frequency spifreq = SPI_FREQUENCY_20MHZ;
-	unsigned int addr = 0;
+	unsigned int addr[WRITE_MAX];
+	char *wr_fname[WRITE_MAX];
+	unsigned char wr_idx, wr_num = 0;
 	int rom_size = -1;
 	bool write_it;
 	char *filename;
@@ -886,11 +889,19 @@
 			break;
 		case 'w':
 			mode_write = 1;
-			if (get_two_words(optarg, &addr_str, &src_fname)) {
-				print_usage(argv[0]);
-				exit(EXIT_FAILURE);
+			if (wr_num < WRITE_MAX) {
+				if (get_two_words(optarg, &addr_str,
+						  &wr_fname[wr_num])) {
+					print_usage(argv[0]);
+					exit(EXIT_FAILURE);
+				}
+				addr[wr_num] = strtol(optarg, NULL, 0);
+				wr_num++;
+			} else {
+				fprintf(stderr,
+					"The number of files to write simultaneously exceeds the limitation (%d)\n",
+					WRITE_MAX);
 			}
-			addr = strtol(optarg, NULL, 0);
 			break;
 		case 'x':
 			mode_extract = 1;
@@ -1002,8 +1013,14 @@
 	if (mode_inject)
 		ret = inject_region(image, size, region_type, src_fname);
 
-	if (mode_write)
-		ret = write_data(image, size, addr, src_fname);
+	if (mode_write) {
+		for (wr_idx = 0; wr_idx < wr_num; wr_idx++) {
+			ret = write_data(image, size,
+					 addr[wr_idx], wr_fname[wr_idx]);
+			if (ret)
+				break;
+		}
+	}
 
 	if (mode_spifreq)
 		set_spi_frequency(image, size, spifreq);
diff --git a/tools/ifdtool.h b/tools/ifdtool.h
index fbec421..0d0cc36 100644
--- a/tools/ifdtool.h
+++ b/tools/ifdtool.h
@@ -14,6 +14,8 @@
 
 #define IFDTOOL_VERSION "1.1-U-Boot"
 
+#define WRITE_MAX	16
+
 enum spi_frequency {
 	SPI_FREQUENCY_20MHZ = 0,
 	SPI_FREQUENCY_33MHZ = 1,
