summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/amd/agesa/family15tn/Makefile.inc2
-rw-r--r--src/cpu/amd/smm/Makefile.inc2
-rw-r--r--src/cpu/x86/Kconfig6
-rw-r--r--src/cpu/x86/lapic/lapic_cpu_init.c6
4 files changed, 12 insertions, 4 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();