+ if (uname == NULL) {
+ puts ("No FIT subimage unit name\n");
+ return 1;
+ }
+
+ printf("## Copying '%s' subimage from FIT image "
+ "at %08lx ...\n", uname, addr);
+
+ fit_hdr = (const void *)addr;
+ if (!fit_check_format (fit_hdr)) {
+ puts ("Bad FIT image format\n");
+ return 1;
+ }
+
+ /* get subimage node offset */
+ noffset = fit_image_get_node (fit_hdr, uname);
+ if (noffset < 0) {
+ printf ("Can't find '%s' FIT subimage\n", uname);
+ return 1;
+ }
+
+ if (fit_image_check_comp (fit_hdr, noffset, IH_COMP_NONE)) {
+ printf("Wrong Compression Type for %s command\n",
+ cmdtp->name);
+ return 1;
+ }
+
+ /* verify integrity */
+ if (verify) {
+ if (!fit_image_check_hashes (fit_hdr, noffset)) {
+ puts ("Bad Data Hash\n");
+ return 1;
+ }
+ }
+
+ /* get subimage data address and length */
+ if (fit_image_get_data (fit_hdr, noffset, &fit_data, &fit_len)) {
+ puts ("Could not find script subimage data\n");
+ return 1;
+ }
+
+ data = (ulong)fit_data;
+ len = (ulong)fit_len;
+ break;