Fix booting from serial dataflash on AT91RM9200
authorWolfgang Denk <wd@pollux.denx.de>
Wed, 5 Oct 2005 23:50:50 +0000 (01:50 +0200)
committerWolfgang Denk <wd@pollux.denx.de>
Wed, 5 Oct 2005 23:50:50 +0000 (01:50 +0200)
Patch by Peter Menzebach, 29 Aug 2005

CHANGELOG
common/cmd_bootm.c

index f558718460915aa205450095e4ac10419e782df1..802f5d30e6b632110e6b0a0fb7438a509d452c81 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes for U-Boot 1.1.4:
 ======================================================================
 
+* Fix booting from serial dataflash on AT91RM9200
+  Patch by Peter Menzebach, 29 Aug 2005
+
 * Add JFFS2 support for TRAB board
   Patch by Martin Krause, 25 Aug 2005
 
index c200fd8b86b2c467288658768f85d15bff373dd2..ab6ccbb07cb257e2dbd366ccb8ad1686752dc823 100644 (file)
@@ -204,19 +204,21 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        }
        SHOW_BOOT_PROGRESS (3);
 
+#ifdef CONFIG_HAS_DATAFLASH
+       if (addr_dataflash(addr)){
+               len  = ntohl(hdr->ih_size) + sizeof(image_header_t);
+               read_dataflash(addr, len, (char *)CFG_LOAD_ADDR);
+               addr = CFG_LOAD_ADDR;
+       }
+#endif
+
+
        /* for multi-file images we need the data part, too */
        print_image_hdr ((image_header_t *)addr);
 
        data = addr + sizeof(image_header_t);
        len  = ntohl(hdr->ih_size);
 
-#ifdef CONFIG_HAS_DATAFLASH
-       if (addr_dataflash(addr)){
-               read_dataflash(data, len, (char *)CFG_LOAD_ADDR);
-               data = CFG_LOAD_ADDR;
-       }
-#endif
-
        if (verify) {
                puts ("   Verifying Checksum ... ");
                if (crc32 (0, (char *)data, len) != ntohl(hdr->ih_dcrc)) {