Fix multi-part image support on i386 platform.
authorWolfgang Denk <wd@pollux.denx.de>
Fri, 21 Jul 2006 09:30:18 +0000 (11:30 +0200)
committerWolfgang Denk <wd@pollux.denx.de>
Fri, 21 Jul 2006 09:30:18 +0000 (11:30 +0200)
Patch by David Updegraff, 19 Aug 2005

CHANGELOG
lib_i386/i386_linux.c

index 2f48a371c930a8a9255f469d313ce1a2ea12d71d..e49e7ffc831c59a47a0aa0901b67551deb2ab862 100644 (file)
--- 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
 
index e5d8eea4b892ff69029eba0babaf457d85a5a6df..b4a6f5a3cdd3bed82bcf43042e6decc181a591f6 100644 (file)
@@ -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);