cpu/x86/smm: Use common APMC logging

Unify the debug messages on raised SMIs.

Change-Id: I34eeb41d929bfb18730ac821a63bde95ef9a0b3e
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/49248
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Kyösti Mälkki
2021-01-08 13:27:33 +02:00
parent 5e6e5c11c7
commit 9a1620f4ed
15 changed files with 35 additions and 77 deletions

View File

@@ -33,6 +33,7 @@ ramstage-srcs += $(obj)/cpu/x86/smm/smm.manual
endif
smm-y += save_state.c
smm-y += smi_trigger.c
ifeq ($(CONFIG_SMM_TSEG),y)

View File

@@ -4,24 +4,23 @@
#include <console/console.h>
#include <cpu/x86/smm.h>
int apm_control(u8 cmd)
static void apmc_log(const char *fn, u8 cmd)
{
if (!CONFIG(HAVE_SMI_HANDLER))
return -1;
switch (cmd) {
case APM_CNT_CST_CONTROL:
printk(BIOS_DEBUG, "%s: C-state control.\n", fn);
break;
case APM_CNT_PST_CONTROL:
printk(BIOS_DEBUG, "%s: P-state control.\n", fn);
break;
case APM_CNT_ACPI_DISABLE:
printk(BIOS_DEBUG, "Disabling ACPI via APMC.\n");
printk(BIOS_DEBUG, "%s: Disabling ACPI.\n", fn);
break;
case APM_CNT_ACPI_ENABLE:
printk(BIOS_DEBUG, "Enabling ACPI via APMC.\n");
printk(BIOS_DEBUG, "%s: Enabling ACPI.\n", fn);
break;
case APM_CNT_FINALIZE:
printk(BIOS_DEBUG, "Finalizing SMM.\n");
printk(BIOS_DEBUG, "%s: Finalizing SMM.\n", fn);
break;
case APM_CNT_ELOG_GSMI:
break;
@@ -30,8 +29,18 @@ int apm_control(u8 cmd)
case APM_CNT_SMMINFO:
break;
default:
printk(BIOS_DEBUG, "%s: Unknown APMC 0x%02x.\n", fn, cmd);
break;
}
}
int apm_control(u8 cmd)
{
/* Never proceed inside SMI handler or without one. */
if (ENV_SMM || !CONFIG(HAVE_SMI_HANDLER))
return -1;
apmc_log(__func__, cmd);
/* Now raise the SMI. */
outb(cmd, APM_CNT);
@@ -39,3 +48,12 @@ int apm_control(u8 cmd)
printk(BIOS_DEBUG, "APMC done.\n");
return 0;
}
u8 apm_get_apmc(void)
{
/* Emulate B2 register as the FADT / Linux expects it */
u8 cmd = inb(APM_CNT);
apmc_log("SMI#", cmd);
return cmd;
}