diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2008-08-15 08:24:41 -0500 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-08-26 23:41:43 +0200 |
commit | 396f635b8ff3ccbc38d75d5eda98444c6466810a (patch) | |
tree | b819dfe09006f81737958700fc697458568c0c12 /lib_sparc/bootm.c | |
parent | e906cfae08e8cc2447f59b1bc4c22ab9c3c286d2 (diff) | |
download | u-boot-imx-396f635b8ff3ccbc38d75d5eda98444c6466810a.zip u-boot-imx-396f635b8ff3ccbc38d75d5eda98444c6466810a.tar.gz u-boot-imx-396f635b8ff3ccbc38d75d5eda98444c6466810a.tar.bz2 |
bootm: refactor image detection and os load steps
Created a bootm_start() that handles the parsing and detection of all
the images that will be used by the bootm command (OS, ramdisk, fdt).
As part of this we now tract all the relevant image offsets in the
bootm_headers_t struct. This will allow us to have all the needed
state for future sub-commands and lets us reduce a bit of arch
specific code on SPARC.
Created a bootm_load_os() that deals with decompression and loading
the OS image.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'lib_sparc/bootm.c')
-rw-r--r-- | lib_sparc/bootm.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/lib_sparc/bootm.c b/lib_sparc/bootm.c index aac05e4..f3abdcf 100644 --- a/lib_sparc/bootm.c +++ b/lib_sparc/bootm.c @@ -87,7 +87,6 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[], bootm_headers_t * images) { char *bootargs; - ulong load; ulong initrd_start, initrd_end; ulong rd_len; unsigned int data, len, checksum; @@ -96,24 +95,8 @@ void do_bootm_linux(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[], struct lmb *lmb = &images->lmb; int ret; - if (images->legacy_hdr_valid) { - load = image_get_load(images->legacy_hdr_os); -#if defined(CONFIG_FIT) - } else if (images->fit_uname_os) { - ret = fit_image_get_load(images->fit_hdr_os, - images->fit_noffset_os, &load); - if (ret) { - puts("Can't get load address property!\n"); - goto error; - } -#endif - } else { - puts("Could not find kernel entry point!\n"); - goto error; - } - /* Get virtual address of kernel start */ - linux_hdr = (void *)load; + linux_hdr = (void *)images->os.load; /* */ kernel = (void (*)(struct linux_romvec *, void *))images->ep; |