diff options
-rw-r--r-- | common/image.c | 32 | ||||
-rw-r--r-- | include/image.h | 5 | ||||
-rw-r--r-- | lib_arm/bootm.c | 6 | ||||
-rw-r--r-- | lib_avr32/bootm.c | 6 | ||||
-rw-r--r-- | lib_i386/bootm.c | 7 | ||||
-rw-r--r-- | lib_m68k/bootm.c | 5 | ||||
-rw-r--r-- | lib_mips/bootm.c | 7 | ||||
-rw-r--r-- | lib_ppc/bootm.c | 5 |
8 files changed, 36 insertions, 37 deletions
diff --git a/common/image.c b/common/image.c index 3b15853c9..6458fb13f 100644 --- a/common/image.c +++ b/common/image.c @@ -66,9 +66,8 @@ extern int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); 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); +static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, + int verify); #else #include "mkimage.h" #include <time.h> @@ -379,10 +378,6 @@ inline void image_print_contents_noindent (image_header_t *hdr) #ifndef USE_HOSTCC /** * image_get_ramdisk - get and verify ramdisk image - * @cmdtp: command table pointer - * @flag: command flag - * @argc: command argument count - * @argv: command argument list * @rd_addr: ramdisk image start address * @arch: expected ramdisk architecture * @verify: checksum verification flag @@ -399,9 +394,8 @@ inline void image_print_contents_noindent (image_header_t *hdr) * pointer to a ramdisk image header, if image was found and valid * otherwise, return NULL */ -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) +static image_header_t* image_get_ramdisk (ulong rd_addr, uint8_t arch, + int verify) { image_header_t *rd_hdr; @@ -748,8 +742,6 @@ ulong genimg_get_image (ulong img_addr) /** * boot_get_ramdisk - main ramdisk handling routine - * @cmdtp: command table pointer - * @flag: command flag * @argc: command argument count * @argv: command argument list * @images: pointer to the bootm images structure @@ -763,14 +755,15 @@ ulong genimg_get_image (ulong img_addr) * - commandline provided address of decicated ramdisk image. * * returns: + * 0, if ramdisk image was found and valid, or skiped * rd_start and rd_end are set to ramdisk start/end addresses if * ramdisk image is found and valid + * + * 1, if ramdisk image is found but corrupted * rd_start and rd_end are set to 0 if no ramdisk exists - * return 1 if ramdisk image is found but corrupted */ -int boot_get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], - bootm_headers_t *images, uint8_t arch, - ulong *rd_start, ulong *rd_end) +int boot_get_ramdisk (int argc, char *argv[], bootm_headers_t *images, + uint8_t arch, ulong *rd_start, ulong *rd_end) { ulong rd_addr, rd_load; ulong rd_data, rd_len; @@ -837,8 +830,8 @@ int boot_get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], printf ("## Loading init Ramdisk from Legacy " "Image at %08lx ...\n", rd_addr); - rd_hdr = image_get_ramdisk (cmdtp, flag, argc, argv, - rd_addr, arch, images->verify); + rd_hdr = image_get_ramdisk (rd_addr, arch, + images->verify); if (rd_hdr == NULL) return 1; @@ -901,8 +894,7 @@ int boot_get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], break; #endif default: - printf ("Wrong Image Format for %s command\n", - cmdtp->name); + puts ("Wrong Ramdisk Image Format\n"); rd_data = rd_len = rd_load = 0; } diff --git a/include/image.h b/include/image.h index 681c753d1..6fca6f4d4 100644 --- a/include/image.h +++ b/include/image.h @@ -250,9 +250,8 @@ int genimg_get_comp_id (const char *name); int genimg_get_format (void *img_addr); ulong genimg_get_image (ulong img_addr); -int boot_get_ramdisk (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], - bootm_headers_t *images, uint8_t arch, - ulong *rd_start, ulong *rd_end); +int boot_get_ramdisk (int argc, char *argv[], bootm_headers_t *images, + uint8_t arch, ulong *rd_start, ulong *rd_end); #if defined(CONFIG_PPC) || defined(CONFIG_M68K) int boot_ramdisk_high (struct lmb *lmb, ulong rd_data, ulong rd_len, diff --git a/lib_arm/bootm.c b/lib_arm/bootm.c index 865e711e9..08eef0bc2 100644 --- a/lib_arm/bootm.c +++ b/lib_arm/bootm.c @@ -95,8 +95,10 @@ void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], printf ("Using machid 0x%x from environment\n", machid); } - boot_get_ramdisk (cmdtp, flag, argc, argv, images, - IH_ARCH_ARM, &initrd_start, &initrd_end); + ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_ARM, + &initrd_start, &initrd_end); + if (ret) + do_reset (cmdtp, flag, argc, argv); show_boot_progress (15); diff --git a/lib_avr32/bootm.c b/lib_avr32/bootm.c index e8e537a2c..c9a019002 100644 --- a/lib_avr32/bootm.c +++ b/lib_avr32/bootm.c @@ -196,8 +196,10 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], } theKernel = (void *)ep; - boot_get_ramdisk (cmdtp, flag, argc, argv, images, - IH_ARCH_AVR32, &initrd_start, &initrd_end); + ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_AVR32, + &initrd_start, &initrd_end); + if (ret) + do_reset (cmdtp, flag, argc, argv); show_boot_progress (15); diff --git a/lib_i386/bootm.c b/lib_i386/bootm.c index 76bcf6cd8..b4a52fa21 100644 --- a/lib_i386/bootm.c +++ b/lib_i386/bootm.c @@ -39,9 +39,12 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], ulong initrd_start, initrd_end; ulong ep; image_header_t *hdr; + int ret; - boot_get_ramdisk (cmdtp, flag, argc, argv, images, - IH_ARCH_I386, &initrd_start, &initrd_end); + ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_I386, + &initrd_start, &initrd_end); + if (ret) + do_reset (cmdtp, flag, argc, argv); if (images->legacy_hdr_valid) { hdr = images->legacy_hdr_os; diff --git a/lib_m68k/bootm.c b/lib_m68k/bootm.c index fba749909..f185beaa9 100644 --- a/lib_m68k/bootm.c +++ b/lib_m68k/bootm.c @@ -111,9 +111,8 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag, kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))ep; /* find ramdisk */ - ret = boot_get_ramdisk (cmdtp, flag, argc, argv, images, - IH_ARCH_M68K, &rd_data_start, &rd_data_end); - + ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_M68K, + &rd_data_start, &rd_data_end); if (ret) goto error; diff --git a/lib_mips/bootm.c b/lib_mips/bootm.c index b336a3649..5e7a46031 100644 --- a/lib_mips/bootm.c +++ b/lib_mips/bootm.c @@ -53,6 +53,7 @@ void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[], void (*theKernel) (int, char **, char **, int *); char *commandline = getenv ("bootargs"); char env_buf[12]; + int ret; /* find kernel entry point */ if (images->legacy_hdr_valid) { @@ -68,8 +69,10 @@ void do_bootm_linux (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[], } theKernel = (void (*)(int, char **, char **, int *))ep; - boot_get_ramdisk (cmdtp, flag, argc, argv, images, - IH_ARCH_MIPS, &initrd_start, &initrd_end); + ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_MIPS, + &initrd_start, &initrd_end); + if (ret) + do_reset (cmdtp, flag, argc, argv); show_boot_progress (15); diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c index 797715773..ac06b2667 100644 --- a/lib_ppc/bootm.c +++ b/lib_ppc/bootm.c @@ -160,9 +160,8 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[], kernel = (void (*)(bd_t *, ulong, ulong, ulong, ulong))ep; /* find ramdisk */ - ret = boot_get_ramdisk (cmdtp, flag, argc, argv, images, - IH_ARCH_PPC, &rd_data_start, &rd_data_end); - + ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_PPC, + &rd_data_start, &rd_data_end); if (ret) goto error; |