soc/intel/tigerlake: Hook up FSP hyper-threading setting to option API

Select `HAVE_HYPERTHREADING` and hook up the hyper-threading setting
from the FSP to the option API so that related mainboards don't have to
do that. Unless otherwise configured (e.g. the CMOS setting or overriden
by the mainboard code), the value from the Kconfig setting
`FSP_HYPERTHREADING` is used.

Also, remove related code from the mainboard starlabs/laptop/tgl, since
it is obsolete now.

Change-Id: I49bbd4a776b4e6c55cb373bbf88a3ca076342e3e
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/60545
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
diff --git a/src/mainboard/starlabs/labtop/variants/tgl/romstage.c b/src/mainboard/starlabs/labtop/variants/tgl/romstage.c
index fed6efc..41e7f6d 100644
--- a/src/mainboard/starlabs/labtop/variants/tgl/romstage.c
+++ b/src/mainboard/starlabs/labtop/variants/tgl/romstage.c
@@ -30,10 +30,6 @@
 	const uint8_t vtd = get_uint_option("vtd", 1);
 		mupd->FspmConfig.VtdDisable = !vtd;
 
-	const uint8_t ht = get_uint_option("hyper_threading",
-		mupd->FspmConfig.HyperThreading);
-	mupd->FspmConfig.HyperThreading = ht;
-
 	/* Enable/Disable Thunderbolt based on CMOS settings */
 	if (get_uint_option("thunderbolt", 1) == 0) {
 		mupd->FspmConfig.VtdItbtEnable = 0;
diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig
index 3d947a5..fc77cde 100644
--- a/src/soc/intel/tigerlake/Kconfig
+++ b/src/soc/intel/tigerlake/Kconfig
@@ -26,6 +26,7 @@
 	select FSP_STATUS_GLOBAL_RESET_REQUIRED_3
 	select GENERIC_GPIO_LIB
 	select HAVE_FSP_GOP
+	select HAVE_HYPERTHREADING
 	select HAVE_INTEL_FSP_REPO
 	select INTEL_DESCRIPTOR_MODE_CAPABLE
 	select HAVE_SMI_HANDLER
diff --git a/src/soc/intel/tigerlake/romstage/fsp_params.c b/src/soc/intel/tigerlake/romstage/fsp_params.c
index 24b8575..e07d239 100644
--- a/src/soc/intel/tigerlake/romstage/fsp_params.c
+++ b/src/soc/intel/tigerlake/romstage/fsp_params.c
@@ -7,6 +7,7 @@
 #include <device/device.h>
 #include <fsp/util.h>
 #include <intelblocks/cpulib.h>
+#include <option.h>
 #include <soc/gpio.h>
 #include <soc/iomap.h>
 #include <soc/msr.h>
@@ -21,6 +22,8 @@
 	unsigned int i;
 	uint32_t cpu_id, mask = 0;
 
+	m_cfg->HyperThreading = get_uint_option("hyper_threading", CONFIG(FSP_HYPERTHREADING));
+
 	m_cfg->InternalGfx = !CONFIG(SOC_INTEL_DISABLE_IGD) && is_devfn_enabled(SA_DEVFN_IGD);
 
 	/* If IGD is enabled, set IGD stolen size to 60MB. Otherwise, skip IGD init in FSP */