* gen_image_get_format() checks whether provided address points to a valid
  * legacy or FIT image.
  *
+ * New uImage format and FDT blob are based on a libfdt. FDT blob
+ * may be passed directly or embedded in a FIT image. In both situations
+ * gen_image_get_format() must be able to dectect libfdt header.
+ *
  * returns:
  *     image format type or IMAGE_FORMAT_INVALID if no image is present
  */
 {
        ulong           format = IMAGE_FORMAT_INVALID;
        image_header_t  *hdr;
-#if defined(CONFIG_FIT)
+#if defined(CONFIG_FIT) || defined(CONFIG_OF_LIBFDT)
        char            *fit_hdr;
 #endif
 
        hdr = (image_header_t *)img_addr;
        if (image_check_magic(hdr))
                format = IMAGE_FORMAT_LEGACY;
-#if defined(CONFIG_FIT)
+#if defined(CONFIG_FIT) || defined(CONFIG_OF_LIBFDT)
        else {
                fit_hdr = (char *)img_addr;
                if (fdt_check_header (fit_hdr) == 0)
 
 void image_print_contents (image_header_t *hdr);
 
 #define IMAGE_FORMAT_INVALID   0x00
-#define IMAGE_FORMAT_LEGACY    0x01
-#define IMAGE_FORMAT_FIT       0x02
+#define IMAGE_FORMAT_LEGACY    0x01    /* legacy image_header based format */
+#define IMAGE_FORMAT_FIT       0x02    /* new, libfdt based format */
+
 int gen_image_get_format (void *img_addr);
 ulong gen_get_image (ulong img_addr);
 
 
 
                        fdt_blob = (char *)image_get_load (fdt_hdr);
                        break;
-#if defined(CONFIG_FIT)
                case IMAGE_FORMAT_FIT:
-
-                       /* check FDT blob vs FIT hdr */
-                       if (fit_uname_config || fit_uname_fdt) {
+                       /*
+                        * This case will catch both: new uImage format
+                        * (libfdt based) and raw FDT blob (also libfdt
+                        * based).
+                        */
+#if defined(CONFIG_FIT)
+                       /* check FDT blob vs FIT blob */
+                       if (0) { /* FIXME: call FIT format verification */
                                /*
                                 * FIT image
                                 */
                                debug ("*  fdt: FIT format image\n");
                                fit_unsupported_reset ("PPC fdt");
                                do_reset (cmdtp, flag, argc, argv);
-                       } else {
+                       } else
+#endif
+                       {
                                /*
                                 * FDT blob
                                 */
+                               debug ("*  fdt: raw FDT blob\n");
                                printf ("## Flattened Device Tree blob at %08lx\n", fdt_blob);
                                fdt_blob = (char *)fdt_addr;
                        }
                        break;
-#endif
                default:
                        fdt_error ("Did not find a cmdline Flattened Device Tree");
                        do_reset (cmdtp, flag, argc, argv);