Author: oxygene
Date: 2009-04-27 20:26:43 +0200 (Mon, 27 Apr 2009)
New Revision: 4218

Modified:
   trunk/coreboot-v2/src/cpu/via/car/cache_as_ram_post.c
Log:
Create a valid stack pointer after leaving CAR, so function calls don't
reset the machine in the small window between CAR and coreboot_ram.

Signed-off-by: Patrick Georgi <[email protected]>
Acked-by: Myles Watson <[email protected]>


Modified: trunk/coreboot-v2/src/cpu/via/car/cache_as_ram_post.c
===================================================================
--- trunk/coreboot-v2/src/cpu/via/car/cache_as_ram_post.c       2009-04-27 
16:08:26 UTC (rev 4217)
+++ trunk/coreboot-v2/src/cpu/via/car/cache_as_ram_post.c       2009-04-27 
18:26:43 UTC (rev 4218)
@@ -99,8 +99,11 @@
         "movl    %eax, %cr0\n\t"
                                "invd\n\t"
 
-       /* 
-       FIXME: I hope we don't need to change esp and ebp value here, so we can 
restore value from mmx sse back
-               But the problem is the range is some io related, So don't go 
back
-       */
+       /* FIXME: These values might have to change for suspend-to-ram.
+          the 0x00400000 was chosen as this is a place in memory that
+          should exist in all contemporary configurations (ie. large
+          enough RAM), but doesn't collide with anything coreboot does.
+          Other than that, it's arbitrary. */
+       "movl   $0x00400000,%esp\n\t"
+       "movl   %esp,%ebp\n\t"
         );


-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to