bootm: Reduce the unnecessary memmove
authorMinkyu Kang <mk7.kang@samsung.com>
Wed, 18 Feb 2009 00:05:52 +0000 (09:05 +0900)
committerWolfgang Denk <wd@denx.de>
Sat, 21 Feb 2009 22:00:20 +0000 (23:00 +0100)
Although load address and image start address are same address,
bootm command always does memmove.
That is unnecessary memmove and can be taken few milliseconds
(about 500 msec to 1000 msec).
If skip this memmove, we can reduce the boot time.

Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
common/cmd_bootm.c

index 07f6c6bca2d9ab12ec2dfa3eef62a04af6b3e3ce..6fdeef49a3510028add72a1ce5428181652a689e 100644 (file)
@@ -340,8 +340,10 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
                } else {
                        printf ("   Loading %s ... ", type_name);
 
-                       memmove_wd ((void *)load,
-                                  (void *)image_start, image_len, CHUNKSZ);
+                       if (load != image_start) {
+                               memmove_wd ((void *)load,
+                                               (void *)image_start, image_len, CHUNKSZ);
+                       }
                }
                *load_end = load + image_len;
                puts("OK\n");