diff options
author | Kumar Gala | 2008-08-15 08:24:36 -0500 |
---|---|---|
committer | Wolfgang Denk | 2008-08-26 23:31:33 +0200 |
commit | c160a9544743e80e8889edb2275538e7764ce334 (patch) | |
tree | 484a54af158348313ed5f3b4890a6bbb56e7e468 /lib_ppc | |
parent | 20220d22b9f41446288588cd2e457e0077a18bed (diff) |
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>
Diffstat (limited to 'lib_ppc')
-rw-r--r-- | lib_ppc/bootm.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c index e83c8608221..b08ee0dc4d0 100644 --- a/lib_ppc/bootm.c +++ b/lib_ppc/bootm.c @@ -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); |