diff --git a/tools/fit_common.c b/tools/fit_common.c
index d96085eaad3278fc443ffbac7b2bda3bc98c6038..9506390214ce028bbe0045d88161538ec652da2d 100644
--- a/tools/fit_common.c
+++ b/tools/fit_common.c
@@ -26,7 +26,10 @@
 int fit_verify_header(unsigned char *ptr, int image_size,
 			struct image_tool_params *params)
 {
-	return fdt_check_header(ptr);
+	if (fdt_check_header(ptr) != EXIT_SUCCESS || !fit_check_format(ptr))
+		return EXIT_FAILURE;
+
+	return EXIT_SUCCESS;
 }
 
 int fit_check_image_types(uint8_t type)
diff --git a/tools/fit_common.h b/tools/fit_common.h
index 71e792e3c489d9e48d8eaabb943f58c0aa08ef13..9e09624f64eea18989d3cfc0f5d96f985ee70dbd 100644
--- a/tools/fit_common.h
+++ b/tools/fit_common.h
@@ -10,6 +10,14 @@
 #include "mkimage.h"
 #include <image.h>
 
+/**
+ * Verify the format of FIT header pointed to by ptr
+ *
+ * @ptr: image header to be verified
+ * @image_size: size of while image
+ * @params: mkimage parameters
+ * @return 0 if OK, -1 on error
+ */
 int fit_verify_header(unsigned char *ptr, int image_size,
 			struct image_tool_params *params);
 
diff --git a/tools/imagetool.c b/tools/imagetool.c
index b3e628f612f527f7a3ed11afb7c57395ae6a6bab..ba1f64aa377a7f048a987e952a3721f81c240b11 100644
--- a/tools/imagetool.c
+++ b/tools/imagetool.c
@@ -46,7 +46,7 @@ int imagetool_verify_print_header(
 
 			if (retval == 0) {
 				/*
-				 * Print the image information  if verify is
+				 * Print the image information if verify is
 				 * successful
 				 */
 				if ((*curr)->print_header) {
@@ -65,6 +65,38 @@ int imagetool_verify_print_header(
 	return retval;
 }
 
+int imagetool_verify_print_header_by_type(
+	void *ptr,
+	struct stat *sbuf,
+	struct image_type_params *tparams,
+	struct image_tool_params *params)
+{
+	int retval;
+
+	retval = tparams->verify_header((unsigned char *)ptr, sbuf->st_size,
+			params);
+
+	if (retval == 0) {
+		/*
+		 * Print the image information if verify is successful
+		 */
+		if (tparams->print_header) {
+			if (!params->quiet)
+				tparams->print_header(ptr);
+		} else {
+			fprintf(stderr,
+				"%s: print_header undefined for %s\n",
+				params->cmdname, tparams->name);
+		}
+	} else {
+		fprintf(stderr,
+			"%s: verify_header failed for %s with exit code %d\n",
+			params->cmdname, tparams->name, retval);
+	}
+
+	return retval;
+}
+
 int imagetool_save_subimage(
 	const char *file_name,
 	ulong file_data,
diff --git a/tools/imagetool.h b/tools/imagetool.h
index 71471420f9c4e218337ff0ee51514607274c816f..2689a4004a7ac7667948f33f61e4aa071ee19831 100644
--- a/tools/imagetool.h
+++ b/tools/imagetool.h
@@ -179,6 +179,25 @@ int imagetool_verify_print_header(
 	struct image_type_params *tparams,
 	struct image_tool_params *params);
 
+/*
+ * imagetool_verify_print_header_by_type() - verifies the image header
+ *
+ * Verify the image_header for the image type given by tparams.
+ * If verification is successful, this prints the respective header.
+ * @ptr: pointer the the image header
+ * @sbuf: stat information about the file pointed to by ptr
+ * @tparams: image type parameters
+ * @params: mkimage parameters
+ *
+ * @return 0 on success, negative if input image format does not match with
+ * the given image type
+ */
+int imagetool_verify_print_header_by_type(
+	void *ptr,
+	struct stat *sbuf,
+	struct image_type_params *tparams,
+	struct image_tool_params *params);
+
 /**
  * imagetool_save_subimage - store data into a file
  * @file_name: name of the destination file
diff --git a/tools/mkimage.c b/tools/mkimage.c
index ea5ed542ab9c120776be927c8b66601562a55758..2899adff81079e4a92edfe454e88c92d159d2e7a 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -409,7 +409,7 @@ int main(int argc, char **argv)
 		 * Print the image information for matched image type
 		 * Returns the error code if not matched
 		 */
-		retval = imagetool_verify_print_header(ptr, &sbuf,
+		retval = imagetool_verify_print_header_by_type(ptr, &sbuf,
 				tparams, &params);
 
 		(void) munmap((void *)ptr, sbuf.st_size);