bootm: refactor entry point code
Move entry point code out of each arch and into common code. Keep the entry point in the bootm_headers_t images struct. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
committed by
Wolfgang Denk
parent
20220d22b9
commit
c160a95447
@@ -79,7 +79,6 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
||||
|
||||
ulong cmd_start, cmd_end, bootmap_base;
|
||||
bd_t *kbd;
|
||||
ulong ep = 0;
|
||||
void (*kernel)(bd_t *, ulong r4, ulong r5, ulong r6,
|
||||
ulong r7, ulong r8, ulong r9);
|
||||
int ret;
|
||||
@@ -90,6 +89,9 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
||||
char *of_flat_tree = NULL;
|
||||
#endif
|
||||
|
||||
kernel = (void (*)(bd_t *, ulong, ulong, ulong,
|
||||
ulong, ulong, ulong))images->ep;
|
||||
|
||||
bootmap_base = getenv_bootm_low();
|
||||
bootm_size = getenv_bootm_size();
|
||||
|
||||
@@ -151,24 +153,6 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
|
||||
set_clocks_in_mhz(kbd);
|
||||
}
|
||||
|
||||
/* find kernel entry point */
|
||||
if (images->legacy_hdr_valid) {
|
||||
ep = image_get_ep (&images->legacy_hdr_os_copy);
|
||||
#if defined(CONFIG_FIT)
|
||||
} else if (images->fit_uname_os) {
|
||||
ret = fit_image_get_entry (images->fit_hdr_os,
|
||||
images->fit_noffset_os, &ep);
|
||||
if (ret) {
|
||||
puts ("Can't get entry point property!\n");
|
||||
goto error;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
puts ("Could not find kernel entry point!\n");
|
||||
goto error;
|
||||
}
|
||||
kernel = (void (*)(bd_t *, ulong, ulong, ulong,
|
||||
ulong, ulong, ulong))ep;
|
||||
/* find ramdisk */
|
||||
ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_PPC,
|
||||
&rd_data_start, &rd_data_end);
|
||||
|
||||
Reference in New Issue
Block a user