aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2020-07-01 15:59:20 +0300
committerFelix Held <felix-coreboot@felixheld.de>2021-02-10 01:31:09 +0000
commit2fec394913d2ef721623d796ac1db82d19ab5195 (patch)
tree560aef1e9d50d54fd9a4c60df6479313e83ae149
parent708e4cb596cea7603c1ccb25d13b1fa05c900caf (diff)
soc/amd/picasso: Move APM_CNT_SMMINFO callsite
Triggering SMI is not part of the semantics of global_smi_enable(), so move it to the post_mp_init handler. Even without the !acpi_is_wakeup_s3 check we don't get PSP warnings/errors during resume, so we can drop the workaround introduced in commit 5dbe45e0f5608794e03634aed28530ddb2ab9ac5 in this patch. Change-Id: Id0e7723c2bb9811f80fe36c38199a01445dc1d7d Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/42987 Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/soc/amd/picasso/cpu.c8
-rw-r--r--src/soc/amd/picasso/smi.c5
2 files changed, 7 insertions, 6 deletions
diff --git a/src/soc/amd/picasso/cpu.c b/src/soc/amd/picasso/cpu.c
index 9460485b6b..8ee065d685 100644
--- a/src/soc/amd/picasso/cpu.c
+++ b/src/soc/amd/picasso/cpu.c
@@ -81,12 +81,18 @@ static void relocation_handler(int cpu, uintptr_t curr_smbase,
smm_state->smbase = staggered_smbase;
}
+static void post_mp_init(void)
+{
+ global_smi_enable();
+ apm_control(APM_CNT_SMMINFO);
+}
+
static const struct mp_ops mp_ops = {
.pre_mp_init = pre_mp_init,
.get_cpu_count = get_cpu_count,
.get_smm_info = get_smm_info,
.relocation_handler = relocation_handler,
- .post_mp_init = global_smi_enable,
+ .post_mp_init = post_mp_init,
};
void mp_init_cpus(struct bus *cpu_bus)
diff --git a/src/soc/amd/picasso/smi.c b/src/soc/amd/picasso/smi.c
index 58221513a1..fb6d3484ad 100644
--- a/src/soc/amd/picasso/smi.c
+++ b/src/soc/amd/picasso/smi.c
@@ -4,8 +4,6 @@
* Utilities for SMM setup
*/
-#include <acpi/acpi.h>
-#include <arch/io.h>
#include <console/console.h>
#include <cpu/x86/smm.h>
#include <amdblocks/acpimmio.h>
@@ -19,7 +17,4 @@ void global_smi_enable(void)
reg &= ~SMITRG0_SMIENB; /* Enable SMI generation */
reg |= SMITRG0_EOS; /* Set EOS bit */
smi_write32(SMI_REG_SMITRIG0, reg);
-
- if (!acpi_is_wakeup_s3())
- outb(APM_CNT_SMMINFO, APM_CNT);
}