bootm: Clean up bootz_setup() function
authorSimon Glass <sjg@chromium.org>
Thu, 4 Jul 2013 20:26:10 +0000 (13:26 -0700)
committerTom Rini <trini@ti.com>
Wed, 10 Jul 2013 13:15:14 +0000 (09:15 -0400)
This function has no prototype in the headers and passes void * around, thus
requiring several casts. Tidy this up.

- Add new patch to clean up bootz_setup() function

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/arm/lib/bootm.c
common/cmd_bootm.c
include/image.h

index b22fbc998248ba95ba68883dbaee9adfa0c3f687..0325d08ca93d7d619bd04bfcc941777bc6c7c18f 100644 (file)
@@ -300,21 +300,23 @@ struct zimage_header {
 
 #define        LINUX_ARM_ZIMAGE_MAGIC  0x016f2818
 
-int bootz_setup(void *image, void **start, void **end)
+int bootz_setup(ulong image, ulong *start, ulong *end)
 {
-       struct zimage_header *zi = (struct zimage_header *)image;
+       struct zimage_header *zi;
 
+       zi = (struct zimage_header *)map_sysmem(image, 0);
        if (zi->zi_magic != LINUX_ARM_ZIMAGE_MAGIC) {
                puts("Bad Linux ARM zImage magic!\n");
                return 1;
        }
 
-       *start = (void *)zi->zi_start;
-       *end = (void *)zi->zi_end;
+       *start = zi->zi_start;
+       *end = zi->zi_end;
 
-       debug("Kernel image @ 0x%08x [ 0x%08x - 0x%08x ]\n",
-               (uint32_t)image, (uint32_t)*start, (uint32_t)*end);
+       printf("Kernel image @ %#08lx [ %#08lx - %#08lx ]\n", image, *start,
+             *end);
 
        return 0;
 }
+
 #endif /* CONFIG_CMD_BOOTZ */
index 21ab6428a106a0e8b4a53660c80186f3de2531c6..3383a8c4c491460b34503c6724458346d66cd8ee 100644 (file)
@@ -1746,15 +1746,13 @@ static int do_bootm_integrity(int flag, int argc, char * const argv[],
 
 #ifdef CONFIG_CMD_BOOTZ
 
-static int __bootz_setup(void *image, void **start, void **end)
+int __weak bootz_setup(ulong image, ulong *start, ulong *end)
 {
        /* Please define bootz_setup() for your platform */
 
        puts("Your platform's zImage format isn't supported yet!\n");
        return -1;
 }
-int bootz_setup(void *image, void **start, void **end)
-       __attribute__((weak, alias("__bootz_setup")));
 
 /*
  * zImage booting support
@@ -1763,7 +1761,7 @@ static int bootz_start(cmd_tbl_t *cmdtp, int flag, int argc,
                        char * const argv[], bootm_headers_t *images)
 {
        int ret;
-       void *zi_start, *zi_end;
+       ulong zi_start, zi_end;
 
        ret = do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START,
                              images, 1);
@@ -1779,7 +1777,7 @@ static int bootz_start(cmd_tbl_t *cmdtp, int flag, int argc,
                        images->ep);
        }
 
-       ret = bootz_setup((void *)images->ep, &zi_start, &zi_end);
+       ret = bootz_setup(images->ep, &zi_start, &zi_end);
        if (ret != 0)
                return 1;
 
index a7b93dbef76fe8e5f8ac03e3880e84759824a43f..9c3e46f32fe39a44c7c2e9514193ece6b4bff854 100644 (file)
@@ -662,6 +662,17 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob,
  */
 int image_setup_linux(bootm_headers_t *images);
 
+/**
+ * bootz_setup() - Extract stat and size of a Linux xImage
+ *
+ * @image: Address of image
+ * @start: Returns start address of image
+ * @end : Returns end address of image
+ * @return 0 if OK, 1 if the image was not recognised
+ */
+int bootz_setup(ulong image, ulong *start, ulong *end);
+
+
 /*******************************************************************/
 /* New uImage format specific code (prefixed with fit_) */
 /*******************************************************************/