image: Rename load_addr, save_addr, save_size
[oweals/u-boot.git] / cmd / ximg.c
index 21b5c377218331012e39e10be13ec74a324cc00b..dccd1143a7a5bc5c3dc46ad13bc3a7a13c27f278 100644 (file)
@@ -1,11 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2000-2004
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * (C) Copyright 2003
  * Kai-Uwe Bloem, Auerswald GmbH & Co KG, <linux-development@auerswald.de>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 
@@ -14,6 +13,9 @@
  */
 #include <common.h>
 #include <command.h>
+#include <cpu_func.h>
+#include <env.h>
+#include <gzip.h>
 #include <image.h>
 #include <mapmem.h>
 #include <watchdog.h>
 static int
 do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
 {
-       ulong           addr = load_addr;
+       ulong           addr = image_load_addr;
        ulong           dest = 0;
        ulong           data, len;
        int             verify;
        int             part = 0;
-#if defined(CONFIG_IMAGE_FORMAT_LEGACY)
+#if defined(CONFIG_LEGACY_IMAGE_FORMAT)
        ulong           count;
        image_header_t  *hdr = NULL;
 #endif
@@ -68,7 +70,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
        }
 
        switch (genimg_get_format((void *)addr)) {
-#if defined(CONFIG_IMAGE_FORMAT_LEGACY)
+#if defined(CONFIG_LEGACY_IMAGE_FORMAT)
        case IMAGE_FORMAT_LEGACY:
 
                printf("## Copying part %d from legacy image "
@@ -144,7 +146,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
                        return 1;
                }
 
-               if (fit_image_check_comp(fit_hdr, noffset, IH_COMP_NONE)
+               if (!fit_image_check_comp(fit_hdr, noffset, IH_COMP_NONE)
                    && (argc < 4)) {
                        printf("Must specify load address for %s command "
                                "with compressed image\n",
@@ -160,9 +162,9 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
                        }
                }
 
-               /* get subimage data address and length */
-               if (fit_image_get_data(fit_hdr, noffset,
-                                       &fit_data, &fit_len)) {
+               /* get subimage/external data address and length */
+               if (fit_image_get_data_and_size(fit_hdr, noffset,
+                                              &fit_data, &fit_len)) {
                        puts("Could not find script subimage data\n");
                        return 1;
                }
@@ -218,7 +220,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
                        }
                        break;
 #endif
-#if defined(CONFIG_BZIP2) && defined(CONFIG_IMAGE_FORMAT_LEGACY)
+#if defined(CONFIG_BZIP2) && defined(CONFIG_LEGACY_IMAGE_FORMAT)
                case IH_COMP_BZIP2:
                        {
                                int i;
@@ -249,7 +251,7 @@ do_imgextract(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
                puts("OK\n");
        }
 
-       flush_cache(dest, len);
+       flush_cache(dest, ALIGN(len, ARCH_DMA_MINALIGN));
 
        env_set_hex("fileaddr", data);
        env_set_hex("filesize", len);