+ * image_get_kernel - verify legacy format kernel image
+ * @img_addr: in RAM address of the legacy format image to be verified
+ * @verify: data CRC verification flag
+ *
+ * image_get_kernel() verifies legacy image integrity and returns pointer to
+ * legacy image header if image verification was completed successfully.
+ *
+ * returns:
+ * pointer to a legacy image header if valid image was found
+ * otherwise return NULL
+ */
+static image_header_t *image_get_kernel (ulong img_addr, int verify)
+{
+ image_header_t *hdr = (image_header_t *)img_addr;
+
+ if (!image_check_magic(hdr)) {
+ puts ("Bad Magic Number\n");
+ show_boot_progress (-1);
+ return NULL;
+ }
+ show_boot_progress (2);
+
+ if (!image_check_hcrc (hdr)) {
+ puts ("Bad Header Checksum\n");
+ show_boot_progress (-2);
+ return NULL;
+ }
+
+ show_boot_progress (3);
+ image_print_contents (hdr);
+
+ if (verify) {
+ puts (" Verifying Checksum ... ");
+ if (!image_check_dcrc (hdr)) {
+ printf ("Bad Data CRC\n");
+ show_boot_progress (-3);
+ return NULL;
+ }
+ puts ("OK\n");
+ }
+ show_boot_progress (4);
+
+ if (!image_check_target_arch (hdr)) {
+ printf ("Unsupported Architecture 0x%x\n", image_get_arch (hdr));
+ show_boot_progress (-4);
+ return NULL;
+ }
+ return hdr;
+}
+
+/**
+ * fit_check_kernel - verify FIT format kernel subimage
+ * @fit_hdr: pointer to the FIT image header
+ * os_noffset: kernel subimage node offset within FIT image
+ * @verify: data CRC verification flag
+ *
+ * fit_check_kernel() verifies integrity of the kernel subimage and from
+ * specified FIT image.
+ *
+ * returns:
+ * 1, on success
+ * 0, on failure
+ */
+#if defined (CONFIG_FIT)
+static int fit_check_kernel (const void *fit, int os_noffset, int verify)
+{
+ fit_image_print (fit, os_noffset, " ");
+
+ if (verify) {
+ puts (" Verifying Hash Integrity ... ");
+ if (!fit_image_check_hashes (fit, os_noffset)) {
+ puts ("Bad Data Hash\n");
+ show_boot_progress (-104);
+ return 0;
+ }
+ puts ("OK\n");
+ }
+ show_boot_progress (105);
+
+ if (!fit_image_check_target_arch (fit, os_noffset)) {
+ puts ("Unsupported Architecture\n");
+ show_boot_progress (-105);
+ return 0;
+ }
+
+ show_boot_progress (106);
+ if (!fit_image_check_type (fit, os_noffset, IH_TYPE_KERNEL)) {
+ puts ("Not a kernel image\n");
+ show_boot_progress (-106);
+ return 0;
+ }
+
+ show_boot_progress (107);
+ return 1;
+}
+#endif /* CONFIG_FIT */
+
+/**
+ * boot_get_kernel - find kernel image