]> git.sur5r.net Git - u-boot/commitdiff
[new uImage] Move image verify flag to bootm_headers structure
authorMarian Balakowicz <m8@semihalf.com>
Wed, 27 Feb 2008 10:01:04 +0000 (11:01 +0100)
committerMarian Balakowicz <m8@semihalf.com>
Wed, 27 Feb 2008 10:01:04 +0000 (11:01 +0100)
Do not pass image verification flag directly to related routines.
Simplify argument passing and move it to the bootm_header structure which
contains curently processed image specific data and is already being passed
on the argument list.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
14 files changed:
common/cmd_bootm.c
common/image.c
include/image.h
lib_arm/bootm.c
lib_avr32/bootm.c
lib_blackfin/bootm.c
lib_i386/bootm.c
lib_m68k/bootm.c
lib_microblaze/bootm.c
lib_mips/bootm.c
lib_nios/bootm.c
lib_nios2/bootm.c
lib_ppc/bootm.c
lib_sh/bootm.c

index 3f099888f2b4ccc4822d2af4840006783862dafe..ce2de2e232a638aa00269c34738cf5380c8fdc8a 100644 (file)
@@ -65,10 +65,8 @@ static int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 static void fixup_silent_linux (void);
 #endif
 
-static void *get_kernel (cmd_tbl_t *cmdtp, int flag,
-               int argc, char *argv[], int verify,
-               bootm_headers_t *images,
-               ulong *os_data, ulong *os_len);
+static void *get_kernel (cmd_tbl_t *cmdtp, int flag,int argc, char *argv[],
+               bootm_headers_t *images, ulong *os_data, ulong *os_len);
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 /*
@@ -81,8 +79,7 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
  */
 typedef void boot_os_fn (cmd_tbl_t *cmdtp, int flag,
                        int argc, char *argv[],
-                       bootm_headers_t *images,/* pointers to os/initrd/fdt */
-                       int verify);            /* getenv("verify")[0] != 'n' */
+                       bootm_headers_t *images); /* pointers to os/initrd/fdt */
 
 extern boot_os_fn do_bootm_linux;
 static boot_os_fn do_bootm_netbsd;
@@ -114,7 +111,6 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        ulong           iflag;
        const char      *type_name;
        uint            unc_len = CFG_BOOTM_LEN;
-       int             verify = getenv_verify();
        uint8_t         comp, type, os;
 
        void            *os_hdr;
@@ -123,9 +119,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        ulong           load_start, load_end;
 
        memset ((void *)&images, 0, sizeof (images));
+       images.verify = getenv_verify();
 
        /* get kernel image header, start address and length */
-       os_hdr = get_kernel (cmdtp, flag, argc, argv, verify,
+       os_hdr = get_kernel (cmdtp, flag, argc, argv,
                        &images, &os_data, &os_len);
        if (os_len == 0)
                return 1;
@@ -246,36 +243,36 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #ifdef CONFIG_SILENT_CONSOLE
            fixup_silent_linux();
 #endif
-           do_bootm_linux (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_linux (cmdtp, flag, argc, argv, &images);
            break;
 
        case IH_OS_NETBSD:
-           do_bootm_netbsd (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_netbsd (cmdtp, flag, argc, argv, &images);
            break;
 
 #ifdef CONFIG_LYNXKDI
        case IH_OS_LYNXOS:
-           do_bootm_lynxkdi (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_lynxkdi (cmdtp, flag, argc, argv, &images);
            break;
 #endif
 
        case IH_OS_RTEMS:
-           do_bootm_rtems (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_rtems (cmdtp, flag, argc, argv, &images);
            break;
 
 #if defined(CONFIG_CMD_ELF)
        case IH_OS_VXWORKS:
-           do_bootm_vxworks (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_vxworks (cmdtp, flag, argc, argv, &images);
            break;
 
        case IH_OS_QNX:
-           do_bootm_qnxelf (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_qnxelf (cmdtp, flag, argc, argv, &images);
            break;
 #endif
 
 #ifdef CONFIG_ARTOS
        case IH_OS_ARTOS:
-           do_bootm_artos (cmdtp, flag, argc, argv, &images, verify);
+           do_bootm_artos (cmdtp, flag, argc, argv, &images);
            break;
 #endif
        }
@@ -300,10 +297,8 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  *     pointer to image header if valid image was found, plus kernel start
  *     address and length, otherwise NULL
  */
-static void *get_kernel (cmd_tbl_t *cmdtp, int flag,
-               int argc, char *argv[], int verify,
-               bootm_headers_t *images,
-               ulong *os_data, ulong *os_len)
+static void *get_kernel (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
+               bootm_headers_t *images, ulong *os_data, ulong *os_len)
 {
        image_header_t  *hdr;
        ulong           img_addr;
@@ -362,7 +357,7 @@ static void *get_kernel (cmd_tbl_t *cmdtp, int flag,
                show_boot_progress (3);
                image_print_contents (hdr);
 
-               if (verify) {
+               if (images->verify) {
                        puts ("   Verifying Checksum ... ");
                        if (!image_check_dcrc (hdr)) {
                                printf ("Bad Data CRC\n");
@@ -648,7 +643,7 @@ static void fixup_silent_linux ()
 
 static void do_bootm_netbsd (cmd_tbl_t *cmdtp, int flag,
                            int argc, char *argv[],
-                           bootm_headers_t *images, int verify)
+                           bootm_headers_t *images)
 {
        void (*loader)(bd_t *, image_header_t *, char *, char *);
        image_header_t *os_hdr, *hdr;
@@ -731,7 +726,7 @@ static void do_bootm_netbsd (cmd_tbl_t *cmdtp, int flag,
 #ifdef CONFIG_LYNXKDI
 static void do_bootm_lynxkdi (cmd_tbl_t *cmdtp, int flag,
                             int argc, char *argv[],
-                            bootm_headers_t *images, int verify)
+                            bootm_headers_t *images)
 {
        image_header_t *hdr = images->legacy_hdr_os;
 
@@ -748,7 +743,7 @@ static void do_bootm_lynxkdi (cmd_tbl_t *cmdtp, int flag,
 
 static void do_bootm_rtems (cmd_tbl_t *cmdtp, int flag,
                           int argc, char *argv[],
-                          bootm_headers_t *images, int verify)
+                          bootm_headers_t *images)
 {
        image_header_t *hdr = images->legacy_hdr_os;
        void (*entry_point)(bd_t *);
@@ -777,7 +772,7 @@ static void do_bootm_rtems (cmd_tbl_t *cmdtp, int flag,
 #if defined(CONFIG_CMD_ELF)
 static void do_bootm_vxworks (cmd_tbl_t *cmdtp, int flag,
                             int argc, char *argv[],
-                            bootm_headers_t *images, int verify)
+                            bootm_headers_t *images)
 {
        char str[80];
        image_header_t *hdr = images->legacy_hdr_os;
@@ -796,7 +791,7 @@ static void do_bootm_vxworks (cmd_tbl_t *cmdtp, int flag,
 
 static void do_bootm_qnxelf(cmd_tbl_t *cmdtp, int flag,
                            int argc, char *argv[],
-                           bootm_headers_t *images, int verify)
+                           bootm_headers_t *images)
 {
        char *local_args[2];
        char str[16];
@@ -819,7 +814,7 @@ static void do_bootm_qnxelf(cmd_tbl_t *cmdtp, int flag,
 #if defined(CONFIG_ARTOS) && defined(CONFIG_PPC)
 static void do_bootm_artos (cmd_tbl_t *cmdtp, int flag,
                           int argc, char *argv[],
-                          bootm_headers_t *images, int verify)
+                          bootm_headers_t *images)
 {
        ulong top;
        char *s, *cmdline;
index dd552649ac8aad24e4eec140b1f4a007d7e42d1a..5ca77b9667b3311e5c6b51d2a3fb34946f8dd75c 100644 (file)
@@ -58,6 +58,10 @@ extern int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 #endif
 
 DECLARE_GLOBAL_DATA_PTR;
+
+static image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
+               int argc, char *argv[],
+               ulong rd_addr, uint8_t arch, int verify);
 #else
 #include "mkimage.h"
 #endif /* USE_HOSTCC*/
@@ -485,7 +489,7 @@ ulong gen_get_image (ulong img_addr)
  *     pointer to a ramdisk image header, if image was found and valid
  *     otherwise, board is reset
  */
-image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
+static image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
                int argc, char *argv[],
                ulong rd_addr, uint8_t arch, int verify)
 {
@@ -539,8 +543,7 @@ image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
  * @flag: command flag
  * @argc: command argument count
  * @argv: command argument list
- * @images: pointer to the bootm images strcture
- * @verify: checksum verification flag
+ * @images: pointer to the bootm images structure
  * @arch: expected ramdisk architecture
  * @rd_start: pointer to a ulong variable, will hold ramdisk start address
  * @rd_end: pointer to a ulong variable, will hold ramdisk end
@@ -557,7 +560,7 @@ image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
  *     board is reset if ramdisk image is found but corrupted
  */
 void get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-               bootm_headers_t *images, int verify, uint8_t arch,
+               bootm_headers_t *images, uint8_t arch,
                ulong *rd_start, ulong *rd_end)
 {
        ulong rd_addr, rd_load;
@@ -621,7 +624,7 @@ void get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
                        debug ("*  ramdisk: legacy format image\n");
 
                        rd_hdr = image_get_ramdisk (cmdtp, flag, argc, argv,
-                                               rd_addr, arch, verify);
+                                               rd_addr, arch, images->verify);
 
                        rd_data = image_get_data (rd_hdr);
                        rd_len = image_get_data_size (rd_hdr);
index 2f4b67d445314f633219502656b1828f090da83b..1bc090a1cbf8ec58de06a87b9e61acc8050bc479 100644 (file)
@@ -202,6 +202,7 @@ typedef struct bootm_headers {
        void            *fit_hdr_fdt;   /* FDT blob FIT image header */
        char            *fit_uname_fdt; /* FDT blob node unit name */
 #endif
+       int             verify;         /* getenv("verify")[0] != 'n' */
 #endif
 } bootm_headers_t;
 
@@ -380,12 +381,8 @@ void image_print_contents (image_header_t *hdr);
 int gen_image_get_format (void *img_addr);
 ulong gen_get_image (ulong img_addr);
 
-image_header_t* image_get_ramdisk (cmd_tbl_t *cmdtp, int flag,
-               int argc, char *argv[],
-               ulong rd_addr, uint8_t arch, int verify);
-
 void get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-               bootm_headers_t *images, int verify, uint8_t arch,
+               bootm_headers_t *images, uint8_t arch,
                ulong *rd_start, ulong *rd_end);
 
 #if defined(CONFIG_PPC) || defined(CONFIG_M68K)
index 4849c8ab0b512702a2d88f3efc3f63420bae5588..e1a9ee28714757db57d19b0241025b574b67f930 100644 (file)
@@ -62,7 +62,7 @@ static struct tag *params;
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-                    bootm_headers_t *images, int verify)
+                    bootm_headers_t *images)
 {
        ulong   initrd_start, initrd_end;
        ulong   ep = 0;
@@ -95,7 +95,7 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
                printf ("Using machid 0x%x from environment\n", machid);
        }
 
-       get_ramdisk (cmdtp, flag, argc, argv, images, verify,
+       get_ramdisk (cmdtp, flag, argc, argv, images,
                        IH_ARCH_ARM, &initrd_start, &initrd_end);
 
        show_boot_progress (15);
index c449394e6b7979f687618411a9eec53448154154..69a69dfa6e831feacb7a7486dbb20e90a75ffcb5 100644 (file)
@@ -174,7 +174,7 @@ static void setup_end_tag(struct tag *params)
 }
 
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-                   bootm_headers_t *images, int verify)
+                   bootm_headers_t *images)
 {
        ulong   initrd_start, initrd_end;
        ulong   ep = 0;
@@ -196,7 +196,7 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
        }
        theKernel = (void *)ep;
 
-       get_ramdisk (cmdtp, flag, argc, argv, images, verify,
+       get_ramdisk (cmdtp, flag, argc, argv, images,
                        IH_ARCH_AVR32, &initrd_start, &initrd_end);
 
        show_boot_progress (15);
index 8010e5d64f426b8bfb9e0d708095f5ae4fa3e658..26ac88b267bbe506c25a19c3d6cc6997c0979613 100644 (file)
@@ -47,7 +47,7 @@ extern void flush_data_cache(void);
 static char *make_command_line(void);
 
 void do_bootm_linux(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
-                   bootm_headers_t *images, int verify)
+                   bootm_headers_t *images)
 {
        int     (*appl) (char *cmdline);
        char    *cmdline;
index 3a6497c77a24c950a82dc01686478aa346059ac2..aea58d178b966ece87235da4ef6803b25bab7532 100644 (file)
@@ -32,7 +32,7 @@
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-               bootm_headers_t *images, int verify)
+               bootm_headers_t *images)
 {
        void            *base_ptr;
        ulong           os_data, os_len;
@@ -40,7 +40,7 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
        ulong           ep;
        image_header_t  *hdr;
 
-       get_ramdisk (cmdtp, flag, argc, argv, images, verify,
+       get_ramdisk (cmdtp, flag, argc, argv, images,
                        IH_ARCH_I386, &initrd_start, &initrd_end);
 
        if (images->legacy_hdr_valid) {
index ce8be05e4c5b5989614adf3985cc3d17c0f39a8a..c6114978af3124384edf7d1af1e842926012cb43 100644 (file)
@@ -46,7 +46,7 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 void do_bootm_linux(cmd_tbl_t * cmdtp, int flag,
                    int argc, char *argv[],
-                   bootm_headers_t *images, int verify)
+                   bootm_headers_t *images)
 {
        ulong sp, sp_limit, alloc_current;
 
@@ -95,7 +95,7 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag,
        kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))ep;
 
        /* find ramdisk */
-       get_ramdisk (cmdtp, flag, argc, argv, images, verify,
+       get_ramdisk (cmdtp, flag, argc, argv, images,
                        IH_ARCH_M68K, &rd_data_start, &rd_data_end);
 
        rd_len = rd_data_end - rd_data_start;
index 1455211864027ea1aef50890e8292f01d4998ff4..5881df64f6f23c36ad8cf74ae4bcdb868f6c23d9 100644 (file)
@@ -35,7 +35,7 @@ DECLARE_GLOBAL_DATA_PTR;
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
-                    bootm_headers_t *images, int verify)
+                    bootm_headers_t *images)
 {
        /* First parameter is mapped to $r5 for kernel boot args */
        void    (*theKernel) (char *);
index 5c2f28e6226917b72dab3fa0e2f2e2fbac2f3c3d..998aa22c3484ba3ae795013617f3b638303e004a 100644 (file)
@@ -46,7 +46,7 @@ static void linux_env_set (char * env_name, char * env_val);
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
-                    bootm_headers_t *images, int verify)
+                    bootm_headers_t *images)
 {
        ulong   initrd_start, initrd_end;
        ulong   ep = 0;
@@ -68,7 +68,7 @@ void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[],
        }
        theKernel = (void (*)(int, char **, char **, int *))ep;
 
-       get_ramdisk (cmdtp, flag, argc, argv, images, verify,
+       get_ramdisk (cmdtp, flag, argc, argv, images,
                        IH_ARCH_MIPS, &initrd_start, &initrd_end);
 
        show_boot_progress (15);
index 92a58f2b7fa7ac0e6fa9992000ada4d87f6ff5e8..fb2e9b52050b7bfb678b9add813dc80cb95464fd 100644 (file)
@@ -29,6 +29,6 @@
  *
  */
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-               bootm_headers_t *images, int verify)
+               bootm_headers_t *images)
 {
 }
index 56d1d19dd4db60b0cfa9cefb5fe9da0b9659b4d7..70d2bb07696fdf00baeee40f5f3b3288d3b5d3f9 100644 (file)
@@ -28,7 +28,7 @@
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-               bootm_headers_t *images, int verify)
+               bootm_headers_t *images)
 {
        ulong   ep = 0;
 
index d5e019e3a4c2524ddd8c543a2d19ee59cc0e6106..319d4ba41185726395c23c84d79becc1736d7255 100644 (file)
@@ -59,10 +59,8 @@ static ulong get_sp (void);
 static void set_clocks_in_mhz (bd_t *kbd);
 
 void  __attribute__((noinline))
-do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
-               int     argc, char *argv[],
-               bootm_headers_t *images,
-               int     verify)
+do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
+               bootm_headers_t *images)
 {
        ulong   sp, sp_limit, alloc_current;
 
@@ -116,7 +114,7 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
        kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))ep;
 
        /* find ramdisk */
-       get_ramdisk (cmdtp, flag, argc, argv, images, verify,
+       get_ramdisk (cmdtp, flag, argc, argv, images,
                        IH_ARCH_PPC, &rd_data_start, &rd_data_end);
 
        rd_len = rd_data_end - rd_data_start;
index 55e64f51824c4624f081b6a59d9e5098a1b56ad1..de5c9eaf389ce6898b910183aaa878899b61eb55 100644 (file)
@@ -60,7 +60,7 @@ static void hexdump (unsigned char *buf, int len)
 #endif
 
 void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
-                     bootm_headers_t *images, int verify)
+                     bootm_headers_t *images)
 {
        ulong   ep = 0;
        char    *bootargs = getenv("bootargs");