cpu/qemu-x86: Add the option to have no SMM

Qemu i440fx does not support an smihandler at the moment.

Change-Id: I5526b19b8294042a49e5bca61036e47db01fd28a
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48208
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
diff --git a/src/cpu/qemu-x86/Kconfig b/src/cpu/qemu-x86/Kconfig
index 87d02fc..c7ba631 100644
--- a/src/cpu/qemu-x86/Kconfig
+++ b/src/cpu/qemu-x86/Kconfig
@@ -5,10 +5,29 @@
 	select UDELAY_TSC
 	select TSC_MONOTONIC_TIMER
 	select UNKNOWN_TSC_RATE
-	select SMM_ASEG
 
 if CPU_QEMU_X86
 
+# coreboot i440fx does not support SMM
+choice
+	prompt "SMM support"
+	default CPU_QEMU_X86_ASEG_SMM
+	depends on BOARD_EMULATION_QEMU_X86_Q35
+
+config CPU_QEMU_X86_NO_SMM
+	bool "No SMM"
+	select NO_SMM
+
+config CPU_QEMU_X86_ASEG_SMM
+	bool "SMM in ASEG"
+	select SMM_ASEG
+
+#config CPU_QEMU_X86_TSEG_SMM
+#	bool "SMM in TSEG"
+#	select SMM_TSEG
+
+endchoice
+
 config CPU_QEMU_X86_64
 	bool "Experimental 64bit support"
 	select ARCH_ALL_STAGES_X86_64
diff --git a/src/mainboard/emulation/qemu-i440fx/Kconfig b/src/mainboard/emulation/qemu-i440fx/Kconfig
index 9187b05..62c23ca 100644
--- a/src/mainboard/emulation/qemu-i440fx/Kconfig
+++ b/src/mainboard/emulation/qemu-i440fx/Kconfig
@@ -14,6 +14,7 @@
 	select MAINBOARD_HAS_NATIVE_VGA_INIT
 	select MAINBOARD_FORCE_NATIVE_VGA_INIT
 	select HAVE_ASAN_IN_ROMSTAGE
+	select NO_SMM
 
 config VBOOT
 	select VBOOT_MUST_REQUEST_DISPLAY
diff --git a/src/southbridge/intel/i82801ix/Kconfig b/src/southbridge/intel/i82801ix/Kconfig
index e1405cf..11a6d39 100644
--- a/src/southbridge/intel/i82801ix/Kconfig
+++ b/src/southbridge/intel/i82801ix/Kconfig
@@ -3,7 +3,7 @@
 config SOUTHBRIDGE_INTEL_I82801IX
 	bool
 	select ACPI_INTEL_HARDWARE_SLEEP_VALUES
-	select HAVE_SMI_HANDLER
+	select HAVE_SMI_HANDLER if !NO_SMM
 	select HAVE_USBDEBUG_OPTIONS
 	select INTEL_DESCRIPTOR_MODE_CAPABLE
 	select IOAPIC
@@ -15,7 +15,7 @@
 	select SOUTHBRIDGE_INTEL_COMMON_RTC
 	select SOUTHBRIDGE_INTEL_COMMON_SMBUS
 	select SOUTHBRIDGE_INTEL_COMMON_EARLY_SMBUS
-	select SOUTHBRIDGE_INTEL_COMMON_SMM
+	select SOUTHBRIDGE_INTEL_COMMON_SMM if !NO_SMM
 	select SOUTHBRIDGE_INTEL_COMMON_SPI_ICH9 if !BOARD_EMULATION_QEMU_X86_Q35
 	select SOUTHBRIDGE_INTEL_COMMON_USB_DEBUG
 	select SOUTHBRIDGE_INTEL_COMMON_WATCHDOG