summaryrefslogtreecommitdiffstats
path: root/src/soc/amd/common/block/cpu/smm/finalize.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/cpu/smm/finalize.c')
-rw-r--r--src/soc/amd/common/block/cpu/smm/finalize.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/soc/amd/common/block/cpu/smm/finalize.c b/src/soc/amd/common/block/cpu/smm/finalize.c
index 73b21216f5ca..d0fe4bc9d6d2 100644
--- a/src/soc/amd/common/block/cpu/smm/finalize.c
+++ b/src/soc/amd/common/block/cpu/smm/finalize.c
@@ -1,31 +1,25 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <acpi/acpi.h>
-#include <cpu/x86/mp.h>
-#include <cpu/x86/msr.h>
-#include <cpu/amd/msr.h>
+#include <amdblocks/acpi.h>
+#include <amdblocks/smm.h>
#include <bootstate.h>
#include <console/console.h>
-#include <amdblocks/acpi.h>
+#include <cpu/amd/msr.h>
+#include <cpu/x86/mp.h>
+#include <cpu/x86/msr.h>
#include <types.h>
static void per_core_finalize(void *unused)
{
- msr_t hwcr, mask;
-
/* Finalize SMM settings */
- hwcr = rdmsr(HWCR_MSR);
- if (hwcr.lo & SMM_LOCK) /* Skip if already locked, avoid GPF */
+ if (is_smm_locked()) /* Skip if already locked, avoid GPF */
return;
- if (CONFIG(HAVE_SMI_HANDLER)) {
- mask = rdmsr(SMM_MASK_MSR);
- mask.lo |= SMM_TSEG_VALID;
- wrmsr(SMM_MASK_MSR, mask);
- }
+ if (CONFIG(HAVE_SMI_HANDLER))
+ tseg_valid();
- hwcr.lo |= SMM_LOCK;
- wrmsr(HWCR_MSR, hwcr);
+ lock_smm();
}
static void finalize_cores(void)