diff options
author | Felix Held <felix-coreboot@felixheld.de> | 2023-12-14 20:49:59 +0100 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2024-01-08 13:09:36 +0000 |
commit | 6759ad39ad7d669f8fe712b6dcbb927092043497 (patch) | |
tree | 22d457a55347fe24689a06febd8ef555ea59e5d7 /src | |
parent | 3526b9fcaf33c6c7725fa7f0bd901be8ca122a2a (diff) |
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 <felix-coreboot@felixheld.de>
Change-Id: Iaceb61b0f2a630d7afe2e0780b6a2a9806ea62f9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/79566
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/x86/Kconfig | 7 | ||||
-rw-r--r-- | src/arch/x86/Makefile.inc | 5 | ||||
-rw-r--r-- | src/arch/x86/apmc_smi_port.c (renamed from src/mainboard/emulation/qemu-q35/smi.c) | 2 | ||||
-rw-r--r-- | src/mainboard/emulation/qemu-q35/Makefile.inc | 1 | ||||
-rw-r--r-- | src/soc/amd/common/block/smi/Kconfig | 1 |
5 files changed, 14 insertions, 2 deletions
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/mainboard/emulation/qemu-q35/smi.c b/src/arch/x86/apmc_smi_port.c index 5d8d48295c..ac8f3364c5 100644 --- a/src/mainboard/emulation/qemu-q35/smi.c +++ b/src/arch/x86/apmc_smi_port.c @@ -2,7 +2,7 @@ #include <cpu/x86/smm.h> -/* The X86 qemu target uses AMD64 save states but the APM port is not configurable. */ +/* default implementation of the !HAVE_CONFIGURABLE_APMC_SMI_PORT case */ uint16_t pm_acpi_smi_cmd_port(void) { return APM_CNT; diff --git a/src/mainboard/emulation/qemu-q35/Makefile.inc b/src/mainboard/emulation/qemu-q35/Makefile.inc index f4a89be06f..bc73edcbbb 100644 --- a/src/mainboard/emulation/qemu-q35/Makefile.inc +++ b/src/mainboard/emulation/qemu-q35/Makefile.inc @@ -20,5 +20,4 @@ all-y += ../qemu-i440fx/bootmode.c ramstage-$(CONFIG_CHROMEOS) += chromeos.c -smm-y += smi.c smm-y += memmap.c diff --git a/src/soc/amd/common/block/smi/Kconfig b/src/soc/amd/common/block/smi/Kconfig index b2054371cd..5a3f42d20e 100644 --- a/src/soc/amd/common/block/smi/Kconfig +++ b/src/soc/amd/common/block/smi/Kconfig @@ -1,5 +1,6 @@ config SOC_AMD_COMMON_BLOCK_SMI bool + select HAVE_CONFIGURABLE_APMC_SMI_PORT help Select this option to add the common functions for setting up the SMI configuration to the build. |