summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinkyu Kang <mk7.kang@samsung.com>2009-02-18 09:05:52 +0900
committerWolfgang Denk <wd@denx.de>2009-02-21 23:00:20 +0100
commitfca0cecff73db99d99ad094cca7980472b8a11b5 (patch)
tree823c444758a43895eab992b307d638f11db32080
parent670cbde8da83690fed1064c3358f54ae1d693ed2 (diff)
downloadu-boot-imx-fca0cecff73db99d99ad094cca7980472b8a11b5.zip
u-boot-imx-fca0cecff73db99d99ad094cca7980472b8a11b5.tar.gz
u-boot-imx-fca0cecff73db99d99ad094cca7980472b8a11b5.tar.bz2
bootm: Reduce the unnecessary memmove
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>
-rw-r--r--common/cmd_bootm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 07f6c6b..6fdeef4 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -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");