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 patrick.georgi@coresystems.de Acked-by: Myles Watson mylesgw@gmail.com
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" );