coreboot-kgpe-d16/src/arch/x86/acpi_s3.c
Kyösti Mälkki b8cf0394fb ACPI: Final APM_CNT_GNVS_UPDATE cleanup
All platforms moved to initialise GNVS at the time
of SMM module loading.

Change-Id: I31b5652a946b0d9bd1909ff8bde53b43e06e2cd9
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48699
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2021-01-04 23:16:03 +00:00

34 lines
793 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
#include <console/console.h>
#include <string.h>
#include <acpi/acpi.h>
#include <arch/cpu.h>
#include <commonlib/helpers.h>
#include <fallback.h>
#include <timestamp.h>
#define WAKEUP_BASE 0x600
asmlinkage void (*acpi_do_wakeup)(uintptr_t vector) = (void *)WAKEUP_BASE;
extern unsigned char __wakeup;
extern unsigned int __wakeup_size;
void __noreturn acpi_resume(void *wake_vec)
{
/* Call mainboard resume handler first, if defined. */
mainboard_suspend_resume();
/* Copy wakeup trampoline in place. */
memcpy((void *)WAKEUP_BASE, &__wakeup, __wakeup_size);
set_boot_successful();
timestamp_add_now(TS_ACPI_WAKE_JUMP);
post_code(POST_OS_RESUME);
acpi_do_wakeup((uintptr_t)wake_vec);
die("Failed the jump to wakeup vector\n");
}