diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2022-01-29 14:05:58 +0200 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-02-01 20:35:02 +0000 |
commit | 894f6f8229a7bb479c523ce4bcbf927f2d1f1d5b (patch) | |
tree | 83ea0df2c41150f2daa8ccbf717a923a1f71d064 /src | |
parent | bab9d72f1528610a0200a5afb7e7ebc35ffe99aa (diff) |
cpu/x86/smm: Add SMM_LEGACY_ASEG
Followup will allow use of PARALLEL_MP with SMM_ASEG so
some guards need to be adjusted.
Change-Id: If032ce2be4749559db0d46ab5ae422afa7666785
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61480
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/cpu/amd/agesa/family15tn/Makefile.inc | 2 | ||||
-rw-r--r-- | src/cpu/amd/smm/Makefile.inc | 2 | ||||
-rw-r--r-- | src/cpu/x86/Kconfig | 6 | ||||
-rw-r--r-- | src/cpu/x86/lapic/lapic_cpu_init.c | 6 | ||||
-rw-r--r-- | src/include/cpu/x86/smi_deprecated.h | 8 | ||||
-rw-r--r-- | src/southbridge/intel/i82801dx/Makefile.inc | 6 | ||||
-rw-r--r-- | src/southbridge/intel/i82801dx/lpc.c | 2 | ||||
-rw-r--r-- | src/southbridge/intel/i82801ix/Makefile.inc | 6 | ||||
-rw-r--r-- | src/southbridge/intel/i82801ix/lpc.c | 2 | ||||
-rw-r--r-- | src/southbridge/intel/i82801ix/smihandler.c | 2 |
10 files changed, 19 insertions, 23 deletions
diff --git a/src/cpu/amd/agesa/family15tn/Makefile.inc b/src/cpu/amd/agesa/family15tn/Makefile.inc index a5914475e8..ca51196c66 100644 --- a/src/cpu/amd/agesa/family15tn/Makefile.inc +++ b/src/cpu/amd/agesa/family15tn/Makefile.inc @@ -9,4 +9,4 @@ ramstage-y += model_15_init.c smm-y += udelay.c subdirs-y += ../../mtrr -subdirs-y += ../../smm +subdirs-$(CONFIG_SMM_LEGACY_ASEG) += ../../smm diff --git a/src/cpu/amd/smm/Makefile.inc b/src/cpu/amd/smm/Makefile.inc index a645122f44..97a669455d 100644 --- a/src/cpu/amd/smm/Makefile.inc +++ b/src/cpu/amd/smm/Makefile.inc @@ -1,2 +1,2 @@ -ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smm_init.c +ramstage-y += smm_init.c diff --git a/src/cpu/x86/Kconfig b/src/cpu/x86/Kconfig index d021564126..86f31e05c7 100644 --- a/src/cpu/x86/Kconfig +++ b/src/cpu/x86/Kconfig @@ -114,6 +114,12 @@ config SMM_TSEG default y depends on !(NO_SMM || SMM_ASEG) +config SMM_LEGACY_ASEG + bool + default y if HAVE_SMI_HANDLER && SMM_ASEG && LEGACY_SMP_INIT + help + SMM support without PARALLEL_MP, to be deprecated. + if SMM_TSEG config SMM_MODULE_HEAP_SIZE diff --git a/src/cpu/x86/lapic/lapic_cpu_init.c b/src/cpu/x86/lapic/lapic_cpu_init.c index 5f2b27b133..7780be26ec 100644 --- a/src/cpu/x86/lapic/lapic_cpu_init.c +++ b/src/cpu/x86/lapic/lapic_cpu_init.c @@ -391,7 +391,8 @@ void initialize_cpus(struct bus *cpu_bus) if (is_smp_boot()) copy_secondary_start_to_lowest_1M(); - smm_init(); + if (CONFIG(SMM_LEGACY_ASEG)) + smm_init(); /* Initialize the bootstrap processor */ cpu_initialize(0); @@ -403,7 +404,8 @@ void initialize_cpus(struct bus *cpu_bus) if (is_smp_boot()) wait_other_cpus_stop(cpu_bus); - smm_init_completion(); + if (CONFIG(SMM_LEGACY_ASEG)) + smm_init_completion(); if (is_smp_boot()) recover_lowest_1M(); diff --git a/src/include/cpu/x86/smi_deprecated.h b/src/include/cpu/x86/smi_deprecated.h index 6213915eee..262aa0b695 100644 --- a/src/include/cpu/x86/smi_deprecated.h +++ b/src/include/cpu/x86/smi_deprecated.h @@ -3,16 +3,8 @@ #ifndef __X86_SMI_DEPRECATED_H__ #define __X86_SMI_DEPRECATED_H__ -#include <stdint.h> - -#if CONFIG(PARALLEL_MP) || !CONFIG(HAVE_SMI_HANDLER) -/* Empty stubs for platforms without SMI handlers. */ -static inline void smm_init(void) { } -static inline void smm_init_completion(void) { } -#else void smm_init(void); void smm_init_completion(void); -#endif /* Entry from smmhandler.S. */ void smi_handler(void); diff --git a/src/southbridge/intel/i82801dx/Makefile.inc b/src/southbridge/intel/i82801dx/Makefile.inc index 030f7b4be2..ff100919e6 100644 --- a/src/southbridge/intel/i82801dx/Makefile.inc +++ b/src/southbridge/intel/i82801dx/Makefile.inc @@ -11,10 +11,8 @@ ramstage-y += lpc.c ramstage-y += usb.c ramstage-y += usb2.c -ifeq ($(CONFIG_SMM_ASEG),y) -ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c -ramstage-$(CONFIG_HAVE_SMI_HANDLER) += ../../../cpu/x86/smm/smmrelocate.S -endif +ramstage-$(CONFIG_SMM_LEGACY_ASEG) += smi.c +ramstage-$(CONFIG_SMM_LEGACY_ASEG) += ../../../cpu/x86/smm/smmrelocate.S smm-y += smihandler.c diff --git a/src/southbridge/intel/i82801dx/lpc.c b/src/southbridge/intel/i82801dx/lpc.c index bb38e1ab56..972ca76462 100644 --- a/src/southbridge/intel/i82801dx/lpc.c +++ b/src/southbridge/intel/i82801dx/lpc.c @@ -279,7 +279,7 @@ static void lpc_init(struct device *dev) /* Don't allow evil boot loaders, kernels, or * userspace applications to deceive us: */ - if (CONFIG(HAVE_SMI_HANDLER) && !CONFIG(PARALLEL_MP)) + if (CONFIG(SMM_LEGACY_ASEG)) aseg_smm_lock(); } diff --git a/src/southbridge/intel/i82801ix/Makefile.inc b/src/southbridge/intel/i82801ix/Makefile.inc index dada88511d..d376622850 100644 --- a/src/southbridge/intel/i82801ix/Makefile.inc +++ b/src/southbridge/intel/i82801ix/Makefile.inc @@ -28,10 +28,8 @@ ifneq ($(CONFIG_BOARD_EMULATION_QEMU_X86_Q35),y) ramstage-y += madt.c endif -ifeq ($(CONFIG_SMM_ASEG),y) -ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c -ramstage-$(CONFIG_HAVE_SMI_HANDLER) += ../../../cpu/x86/smm/smmrelocate.S -endif +ramstage-$(CONFIG_SMM_LEGACY_ASEG) += smi.c +ramstage-$(CONFIG_SMM_LEGACY_ASEG) += ../../../cpu/x86/smm/smmrelocate.S CPPFLAGS_common += -I$(src)/southbridge/intel/i82801ix/include diff --git a/src/southbridge/intel/i82801ix/lpc.c b/src/southbridge/intel/i82801ix/lpc.c index 21f1faa3b7..0132ac5b89 100644 --- a/src/southbridge/intel/i82801ix/lpc.c +++ b/src/southbridge/intel/i82801ix/lpc.c @@ -378,7 +378,7 @@ static void lpc_init(struct device *dev) /* Don't allow evil boot loaders, kernels, or * userspace applications to deceive us: */ - if (CONFIG(HAVE_SMI_HANDLER) && !CONFIG(PARALLEL_MP)) + if (CONFIG(SMM_LEGACY_ASEG)) aseg_smm_lock(); } diff --git a/src/southbridge/intel/i82801ix/smihandler.c b/src/southbridge/intel/i82801ix/smihandler.c index 0483447e94..e02b3965a0 100644 --- a/src/southbridge/intel/i82801ix/smihandler.c +++ b/src/southbridge/intel/i82801ix/smihandler.c @@ -9,7 +9,7 @@ #include <soc/nvs.h> -#if !CONFIG(SMM_TSEG) +#if CONFIG(SMM_LEGACY_ASEG) /* For qemu/x86-q35 to build properly. */ struct global_nvs *gnvs; #endif |