summaryrefslogtreecommitdiff
path: root/src/northbridge
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2017-07-26 00:57:30 +0300
committerKyösti Mälkki <kyosti.malkki@gmail.com>2017-09-06 04:58:40 +0000
commit38aff1ad41d6556dbcc466ce11f58ea8ca7a07b7 (patch)
tree1f6b554fc1742b373537b642db13488cc8f652f3 /src/northbridge
parent8f39f1f097b8046eb3c80ac1de44ce24ac366560 (diff)
AGESA f15tn f16kb: Fix ACPI S3 resume for FCH
This recovers FCH configuration on S3 resume path. Appearst to work, but other defects of HAVE_ACPI_RESUME must be fixed also before S3 support is re-enabled. Change-Id: I8d07d2e9dc161b67d854fcc8ec1da1f36900f989 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/21376 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/northbridge')
-rw-r--r--src/northbridge/amd/agesa/state_machine.c17
-rw-r--r--src/northbridge/amd/agesa/state_machine.h4
2 files changed, 20 insertions, 1 deletions
diff --git a/src/northbridge/amd/agesa/state_machine.c b/src/northbridge/amd/agesa/state_machine.c
index 3f61c584aa..7743603f0b 100644
--- a/src/northbridge/amd/agesa/state_machine.c
+++ b/src/northbridge/amd/agesa/state_machine.c
@@ -330,6 +330,7 @@ static void amd_bs_ramstage_init(void *arg)
if (IS_ENABLED(CONFIG_LATE_CBMEM_INIT))
cbmem_initialize();
agesa_execute_state(cb, AMD_S3LATE_RESTORE);
+ fchs3earlyrestore(&cb->StdHeader);
}
}
@@ -351,8 +352,10 @@ static void amd_bs_post_device(void *arg)
{
struct sysinfo *cb = arg;
- if (acpi_is_wakeup_s3())
+ if (acpi_is_wakeup_s3()) {
+ fchs3laterestore(&cb->StdHeader);
return;
+ }
agesa_execute_state(cb, AMD_INIT_LATE);
@@ -386,3 +389,15 @@ void __attribute__((weak))
board_BeforeInitEnv(struct sysinfo *cb, AMD_ENV_PARAMS *Env) { }
void __attribute__((weak))
board_BeforeInitMid(struct sysinfo *cb, AMD_MID_PARAMS *Mid) { }
+
+AGESA_STATUS __attribute__((weak))
+fchs3earlyrestore(AMD_CONFIG_PARAMS *StdHeader)
+{
+ return AGESA_SUCCESS;
+}
+
+AGESA_STATUS __attribute__((weak))
+fchs3laterestore(AMD_CONFIG_PARAMS *StdHeader)
+{
+ return AGESA_SUCCESS;
+}
diff --git a/src/northbridge/amd/agesa/state_machine.h b/src/northbridge/amd/agesa/state_machine.h
index 3d8e53d3d4..f2551de5d9 100644
--- a/src/northbridge/amd/agesa/state_machine.h
+++ b/src/northbridge/amd/agesa/state_machine.h
@@ -38,6 +38,10 @@ AGESA_STATUS OemS3LateRestore(AMD_S3_PARAMS *dataBlock);
AGESA_STATUS OemS3Save(AMD_S3_PARAMS *dataBlock);
#endif
+/* For FCH */
+AGESA_STATUS fchs3earlyrestore(AMD_CONFIG_PARAMS *StdHeader);
+AGESA_STATUS fchs3laterestore(AMD_CONFIG_PARAMS *StdHeader);
+
struct sysinfo
{
AMD_CONFIG_PARAMS StdHeader;