[coreboot-gerrit] New patch to review for coreboot: ACPI S3: Cleanup wakeup jump

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Sat Jun 18 12:39:49 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/15244

-gerrit

commit 8afab54247e6d8ebb99a57444cae0b993b2270e8
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sat Jun 18 08:55:15 2016 +0300

    ACPI S3: Cleanup wakeup jump
    
    With RELOCATABLE_RAMSTAGE this change eliminates any
    references to HIGH_MEMORY_SAVE and RAMBASE here.
    
    Change-Id: If0a9e3cc87e92073ba510c853b2742ae373acba5
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/arch/x86/acpi_s3.c | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/src/arch/x86/acpi_s3.c b/src/arch/x86/acpi_s3.c
index 7f81791..dadce84 100644
--- a/src/arch/x86/acpi_s3.c
+++ b/src/arch/x86/acpi_s3.c
@@ -147,6 +147,26 @@ void (*acpi_do_wakeup)(uintptr_t vector, u32 backup_source, u32 backup_target,
 extern unsigned char __wakeup;
 extern unsigned int __wakeup_size;
 
+static void __acpi_jump_to_wakeup(uintptr_t vector, u32 src,
+	u32 dst, size_t len)
+{
+	lowmem_recovery();
+
+	/* Copy wakeup trampoline in place. */
+	memcpy((void *)WAKEUP_BASE, &__wakeup, __wakeup_size);
+
+	timestamp_add_now(TS_ACPI_WAKE_JUMP);
+
+	acpi_do_wakeup(vector, src, dst, len);
+}
+
+#if IS_ENABLED(CONFIG_RELOCATABLE_RAMSTAGE)
+void acpi_jump_to_wakeup(void *vector)
+{
+	__acpi_jump_to_wakeup((uintptr_t)vector, 0, 0, 0);
+}
+#else
+
 void acpi_jump_to_wakeup(void *vector)
 {
 	uintptr_t acpi_backup_memory = 0;
@@ -160,16 +180,9 @@ void acpi_jump_to_wakeup(void *vector)
 			return;
 		}
 	}
-
-	lowmem_recovery();
-
-	/* Copy wakeup trampoline in place. */
-	memcpy((void *)WAKEUP_BASE, &__wakeup, __wakeup_size);
-
-	timestamp_add_now(TS_ACPI_WAKE_JUMP);
-
-	acpi_do_wakeup((uintptr_t)vector, acpi_backup_memory, CONFIG_RAMBASE,
+	__acpi_jump_to_wakeup((uintptr_t)vector, acpi_backup_memory, CONFIG_RAMBASE,
 		       HIGH_MEMORY_SAVE);
 }
+#endif
 
 #endif /* ENV_RAMSTAGE */



More information about the coreboot-gerrit mailing list