aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2020-06-17 01:00:10 +0300
committerPatrick Georgi <pgeorgi@google.com>2021-01-04 23:16:03 +0000
commitb8cf0394fb400a0f36c2b2de9274ac87299dc115 (patch)
tree3799cdec5cdcd59e74daa69231f46ddc77f0b3fe /src
parent8c2cc68b1ac9e1fb2011bcb669df04b4c8cad351 (diff)
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>
Diffstat (limited to 'src')
-rw-r--r--src/arch/x86/acpi_s3.c4
-rw-r--r--src/cpu/x86/smm/smi_trigger.c35
-rw-r--r--src/include/cpu/x86/smm.h3
3 files changed, 1 insertions, 41 deletions
diff --git a/src/arch/x86/acpi_s3.c b/src/arch/x86/acpi_s3.c
index 43a68f95f4..ec1fafcd3c 100644
--- a/src/arch/x86/acpi_s3.c
+++ b/src/arch/x86/acpi_s3.c
@@ -5,7 +5,6 @@
#include <acpi/acpi.h>
#include <arch/cpu.h>
#include <commonlib/helpers.h>
-#include <cpu/x86/smm.h>
#include <fallback.h>
#include <timestamp.h>
@@ -18,9 +17,6 @@ extern unsigned int __wakeup_size;
void __noreturn acpi_resume(void *wake_vec)
{
- /* Restore GNVS pointer in SMM if found. */
- apm_control(APM_CNT_GNVS_UPDATE);
-
/* Call mainboard resume handler first, if defined. */
mainboard_suspend_resume();
diff --git a/src/cpu/x86/smm/smi_trigger.c b/src/cpu/x86/smm/smi_trigger.c
index 4b637450b7..7e3ddb1613 100644
--- a/src/cpu/x86/smm/smi_trigger.c
+++ b/src/cpu/x86/smm/smi_trigger.c
@@ -1,12 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-only */
-#include <acpi/acpi_gnvs.h>
#include <arch/io.h>
#include <console/console.h>
#include <cpu/x86/smm.h>
-static void set_smm_gnvs_ptr(void);
-
int apm_control(u8 cmd)
{
if (!CONFIG(HAVE_SMI_HANDLER))
@@ -23,9 +20,6 @@ int apm_control(u8 cmd)
case APM_CNT_ACPI_ENABLE:
printk(BIOS_DEBUG, "Enabling ACPI via APMC.\n");
break;
- case APM_CNT_GNVS_UPDATE:
- set_smm_gnvs_ptr();
- return 0;
case APM_CNT_FINALIZE:
printk(BIOS_DEBUG, "Finalizing SMM.\n");
break;
@@ -45,32 +39,3 @@ int apm_control(u8 cmd)
printk(BIOS_DEBUG, "APMC done.\n");
return 0;
}
-
-static void set_smm_gnvs_ptr(void)
-{
- uintptr_t gnvs_address;
-
- if (CONFIG(ACPI_NO_SMI_GNVS)) {
- printk(BIOS_WARNING, "%s() is not implemented\n", __func__);
- return;
- }
-
- gnvs_address = (uintptr_t)acpi_get_gnvs();
- if (!gnvs_address)
- return;
-
- /*
- * Issue SMI to set the gnvs pointer in SMM.
- *
- * EAX = APM_CNT_GNVS_UPDATE
- * EBX = gnvs pointer
- * EDX = APM_CNT
- */
- asm volatile (
- "outb %%al, %%dx\n\t"
- : /* ignore result */
- : "a" (APM_CNT_GNVS_UPDATE),
- "b" (gnvs_address),
- "d" (APM_CNT)
- );
-}
diff --git a/src/include/cpu/x86/smm.h b/src/include/cpu/x86/smm.h
index 6dfe08df1a..9106842840 100644
--- a/src/include/cpu/x86/smm.h
+++ b/src/include/cpu/x86/smm.h
@@ -22,11 +22,10 @@
#define APM_CNT_PST_CONTROL 0x80
#define APM_CNT_ACPI_DISABLE 0x1e
#define APM_CNT_ACPI_ENABLE 0xe1
-#define APM_CNT_MBI_UPDATE 0xeb
-#define APM_CNT_GNVS_UPDATE 0xea
#define APM_CNT_ROUTE_ALL_XHCI 0xca
#define APM_CNT_FINALIZE 0xcb
#define APM_CNT_LEGACY 0xcc
+#define APM_CNT_MBI_UPDATE 0xeb
#define APM_CNT_SMMINFO 0xec
#define APM_CNT_SMMSTORE 0xed
#define APM_CNT_ELOG_GSMI 0xef