bootm: Clean up bootz_setup() function

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>
This commit is contained in:
Simon Glass 2013-07-04 13:26:10 -07:00 committed by Tom Rini
parent a26913f32d
commit a5266d6b5d
3 changed files with 22 additions and 11 deletions

View File

@ -300,21 +300,23 @@ struct zimage_header {
#define LINUX_ARM_ZIMAGE_MAGIC 0x016f2818 #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) { if (zi->zi_magic != LINUX_ARM_ZIMAGE_MAGIC) {
puts("Bad Linux ARM zImage magic!\n"); puts("Bad Linux ARM zImage magic!\n");
return 1; return 1;
} }
*start = (void *)zi->zi_start; *start = zi->zi_start;
*end = (void *)zi->zi_end; *end = zi->zi_end;
debug("Kernel image @ 0x%08x [ 0x%08x - 0x%08x ]\n", printf("Kernel image @ %#08lx [ %#08lx - %#08lx ]\n", image, *start,
(uint32_t)image, (uint32_t)*start, (uint32_t)*end); *end);
return 0; return 0;
} }
#endif /* CONFIG_CMD_BOOTZ */ #endif /* CONFIG_CMD_BOOTZ */

View File

@ -1746,15 +1746,13 @@ static int do_bootm_integrity(int flag, int argc, char * const argv[],
#ifdef CONFIG_CMD_BOOTZ #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 */ /* Please define bootz_setup() for your platform */
puts("Your platform's zImage format isn't supported yet!\n"); puts("Your platform's zImage format isn't supported yet!\n");
return -1; return -1;
} }
int bootz_setup(void *image, void **start, void **end)
__attribute__((weak, alias("__bootz_setup")));
/* /*
* zImage booting support * 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) char * const argv[], bootm_headers_t *images)
{ {
int ret; int ret;
void *zi_start, *zi_end; ulong zi_start, zi_end;
ret = do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START, ret = do_bootm_states(cmdtp, flag, argc, argv, BOOTM_STATE_START,
images, 1); images, 1);
@ -1779,7 +1777,7 @@ static int bootz_start(cmd_tbl_t *cmdtp, int flag, int argc,
images->ep); images->ep);
} }
ret = bootz_setup((void *)images->ep, &zi_start, &zi_end); ret = bootz_setup(images->ep, &zi_start, &zi_end);
if (ret != 0) if (ret != 0)
return 1; return 1;

View File

@ -662,6 +662,17 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob,
*/ */
int image_setup_linux(bootm_headers_t *images); 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_) */ /* New uImage format specific code (prefixed with fit_) */
/*******************************************************************/ /*******************************************************************/