summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Denk <wd@pollux.denx.de>2006-07-21 11:30:18 +0200
committerWolfgang Denk <wd@pollux.denx.de>2006-07-21 11:30:18 +0200
commite644670b68d652cec98f649a776ea44d725a45ad (patch)
tree3eb62b47421cd2f3dbe8ef0ec02be31ada3c487a
parent53dd6ce4f0208bb4d15311f6365f79f6c5b68673 (diff)
Fix multi-part image support on i386 platform.
Patch by David Updegraff, 19 Aug 2005
-rw-r--r--CHANGELOG3
-rw-r--r--lib_i386/i386_linux.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 2f48a371c93..e49e7ffc831 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
Changes since U-Boot 1.1.4:
======================================================================
+* Fix multi-part image support on i386 platform.
+ Patch by David Updegraff, 19 Aug 2005
+
* Add support for KVME080 board
Patch by Sangmoon Kim, 18 Aug 2005
diff --git a/lib_i386/i386_linux.c b/lib_i386/i386_linux.c
index e5d8eea4b89..b4a6f5a3cdd 100644
--- a/lib_i386/i386_linux.c
+++ b/lib_i386/i386_linux.c
@@ -151,6 +151,12 @@ void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
initrd_end = 0;
}
+ /* if multi-part image, we need to advance base ptr */
+ if ((hdr->ih_type==IH_TYPE_MULTI) && (len_ptr[1])) {
+ int i;
+ for (i=0, addr+=sizeof(int); len_ptr[i++]; addr+=sizeof(int));
+ }
+
base_ptr = load_zimage((void*)addr + sizeof(image_header_t), ntohl(hdr->ih_size),
initrd_start, initrd_end-initrd_start, 0);