summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Rottmann <JRottmann@LiPPERTEmbedded.de>2008-10-22 22:24:47 +0000
committerMarc Jones <marc.jones@amd.com>2008-10-22 22:24:47 +0000
commit5e5bef5fbdc9ed15884f659ee6d822824a1080f1 (patch)
treefe7328f5002d9c941677e91f172faa494d76034c
parent9a9e61b7ec3f40fdf3716b95a0cfa2c695626dd0 (diff)
Speed up copying coreboot to ram by using "movsl" instead of "movsb".
Also use different console messages for copying and uncompressing, like it's already done in similar code in other places. Signed-off-by: Jens Rottmann <JRottmann@LiPPERTEmbedded.de> Acked-by: Marc Jones <marc.jones@amd.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3688 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--src/arch/i386/init/crt0.S.lb9
-rw-r--r--src/cpu/amd/model_lx/cache_as_ram.inc9
2 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/i386/init/crt0.S.lb b/src/arch/i386/init/crt0.S.lb
index 6a6c07be0e..de83b6c417 100644
--- a/src/arch/i386/init/crt0.S.lb
+++ b/src/arch/i386/init/crt0.S.lb
@@ -74,6 +74,11 @@ __main:
movl $_iseg, %edi
movl $_eiseg, %ecx
subl %edi, %ecx
+ movb %cl, %al
+ shrl $2, %ecx
+ andb $3, %al
+ rep movsl
+ movb %al, %cl
rep movsb
#else
leal 4+_liseg, %esi
@@ -215,7 +220,11 @@ crt_console_tx_string:
#if defined(CONSOLE_DEBUG_TX_STRING) && (ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG)
.section ".rom.data"
+#if CONFIG_COMPRESS
+str_copying_to_ram: .string "Uncompressing coreboot to RAM.\r\n"
+#else
str_copying_to_ram: .string "Copying coreboot to RAM.\r\n"
+#endif
str_pre_main: .string "Jumping to coreboot.\r\n"
.previous
diff --git a/src/cpu/amd/model_lx/cache_as_ram.inc b/src/cpu/amd/model_lx/cache_as_ram.inc
index a92f474457..57bfc1211f 100644
--- a/src/cpu/amd/model_lx/cache_as_ram.inc
+++ b/src/cpu/amd/model_lx/cache_as_ram.inc
@@ -222,6 +222,11 @@ __main:
movl $_iseg, %edi
movl $_eiseg, %ecx
subl %edi, %ecx
+ movb %cl, %al
+ shrl $2, %ecx
+ andb $3, %al
+ rep movsl
+ movb %al, %cl
rep movsb
#else
leal 4+_liseg, %esi
@@ -363,7 +368,11 @@ crt_console_tx_string:
#if defined(CONSOLE_DEBUG_TX_STRING) && (ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG)
.section ".rom.data"
+#if CONFIG_COMPRESS
+str_copying_to_ram: .string "Uncompressing coreboot to ram.\r\n"
+#else
str_copying_to_ram: .string "Copying coreboot to ram.\r\n"
+#endif
str_pre_main: .string "Jumping to coreboot.\r\n"
.previous