[coreboot-gerrit] Patch set updated for coreboot: AGESA: Use common ACPI S3 recovery

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Tue Jun 21 01:02:42 CEST 2016


Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15253

-gerrit

commit a92dffaf0cabb2ce9f10ccab32bb1f55c69428b3
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sat Jun 18 16:55:51 2016 +0300

    AGESA: Use common ACPI S3 recovery
    
    Previous behaviour was to halt() on S3 wakeup in case
    resume backup memory was missing. In this odd case
    we now continue to normal boot.
    
    Change-Id: I8ce91088c5fa1a2d2abc53b23e423939fe759117
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/cpu/amd/agesa/s3_resume.c | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)

diff --git a/src/cpu/amd/agesa/s3_resume.c b/src/cpu/amd/agesa/s3_resume.c
index 3a60b8d..54e41c1 100644
--- a/src/cpu/amd/agesa/s3_resume.c
+++ b/src/cpu/amd/agesa/s3_resume.c
@@ -25,29 +25,11 @@
 #include <halt.h>
 #include "s3_resume.h"
 
-static void *backup_resume(void)
-{
-	void *resume_backup_memory;
-
-	printk(BIOS_DEBUG, "Find resume memory location\n");
-
-	if (cbmem_recovery(1)) {
-		printk(BIOS_EMERG, "Unable to recover CBMEM\n");
-		halt();
-	}
-
-	resume_backup_memory = cbmem_find(CBMEM_ID_RESUME);
-	if (resume_backup_memory == NULL) {
-		printk(BIOS_EMERG, "No storage for low-memory backup\n");
-		halt();
-	}
-
-	return resume_backup_memory;
-}
-
 static void move_stack_high_mem(void)
 {
 	void *high_stack = cbmem_find(CBMEM_ID_ROMSTAGE_RAM_STACK);
+	if (high_stack == NULL)
+		halt();
 
 	/* TODO: Make the switch with empty stack instead. */
 	memcpy(high_stack, (void *)BSP_STACK_BASE_ADDR, HIGH_ROMSTAGE_STACK_SIZE);
@@ -93,7 +75,10 @@ static void set_resume_cache(void)
 
 void prepare_for_resume(void)
 {
-	void *resume_backup_memory = backup_resume();
+	if (cbmem_recovery(1)) {
+		printk(BIOS_EMERG, "Unable to recover CBMEM\n");
+		halt();
+	}
 
 	post_code(0x62);
 	printk(BIOS_DEBUG, "Move CAR stack.\n");
@@ -108,8 +93,5 @@ void prepare_for_resume(void)
 	 * Copy the system memory that is in the ramstage area to the
 	 * reserved area.
 	 */
-	if (resume_backup_memory)
-		memcpy(resume_backup_memory, (void *)(CONFIG_RAMBASE), HIGH_MEMORY_SAVE);
-
-	printk(BIOS_DEBUG, "System memory saved. OK to load ramstage.\n");
+	acpi_prepare_for_resume();
 }



More information about the coreboot-gerrit mailing list