From 6759ad39ad7d669f8fe712b6dcbb927092043497 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Thu, 14 Dec 2023 20:49:59 +0100 Subject: arch/x86: introduce HAVE_CONFIGURABLE_APMC_SMI_PORT Introduce the HAVE_CONFIGURABLE_APMC_SMI_PORT Kconfig option that when not selected will result in a default implementation of pm_acpi_smi_cmd_port to be included in the build that returns APM_CNT. SoCs that provide their own pm_acpi_smi_cmd_port implementation, need to select this Kconfig option. Signed-off-by: Felix Held Change-Id: Iaceb61b0f2a630d7afe2e0780b6a2a9806ea62f9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/79566 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph --- src/arch/x86/Kconfig | 7 +++++++ src/arch/x86/Makefile.inc | 5 +++++ src/arch/x86/apmc_smi_port.c | 9 +++++++++ 3 files changed, 21 insertions(+) create mode 100644 src/arch/x86/apmc_smi_port.c (limited to 'src/arch/x86') diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig index e149f0864e..0c11653675 100644 --- a/src/arch/x86/Kconfig +++ b/src/arch/x86/Kconfig @@ -316,6 +316,13 @@ config HAVE_CF9_RESET_PREPARE bool depends on HAVE_CF9_RESET +config HAVE_CONFIGURABLE_APMC_SMI_PORT + bool + help + SoCs that have a configurable APMC SMI command port, should select + this option and implement pm_acpi_smi_cmd_port() that returns the IO + port. + config PIRQ_ROUTE bool default n diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index 62294a65ce..04a0e58dbf 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -336,3 +336,8 @@ smm-$(CONFIG_X86_TOP4G_BOOTMEDIA_MAP) += mmap_boot.c smm-$(CONFIG_DEBUG_NULL_DEREF_BREAKPOINTS_IN_ALL_STAGES) += null_breakpoint.c smm-srcs += $(wildcard src/mainboard/$(MAINBOARDDIR)/smihandler.c) + +ifneq ($(CONFIG_HAVE_CONFIGURABLE_APMC_SMI_PORT),y) +ramstage-y += apmc_smi_port.c +smm-y += apmc_smi_port.c +endif diff --git a/src/arch/x86/apmc_smi_port.c b/src/arch/x86/apmc_smi_port.c new file mode 100644 index 0000000000..ac8f3364c5 --- /dev/null +++ b/src/arch/x86/apmc_smi_port.c @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +/* default implementation of the !HAVE_CONFIGURABLE_APMC_SMI_PORT case */ +uint16_t pm_acpi_smi_cmd_port(void) +{ + return APM_CNT; +} -- cgit v1.2.3