summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
authorSubrata Banik <subratabanik@google.com>2023-01-16 13:24:47 +0530
committerFelix Held <felix-coreboot@felixheld.de>2023-01-17 19:25:13 +0000
commit55812d6430b3bcab3961943621fe2784a3e2b79a (patch)
tree71961e4cdcebe0c412ee6add95a7045b030138dd /src/soc/intel
parentb486fe95bf455008d5d5c6df7e1c1fc836e9ccd1 (diff)
soc/intel/alderlake: Avoid redundant chipset programming in romstage
This patch refactors the mainboard_romstage_entry() function to avoid redundant chipset programming caused by global reset due to CSE FW sync operation. Hence, keeping only the minimal and mandatory operations required to perform CSE FW sync successfully. This would help to optimize the boot flow by removing redundant programming like SA, SMBUS twice in every CSE FW update path. TEST=Able to build and boot Google/Marasov successfully. Signed-off-by: Subrata Banik <subratabanik@google.com> Change-Id: Iba9767ef51d7fc7ecf9de14454105865433ba041 Reviewed-on: https://review.coreboot.org/c/coreboot/+/71932 Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com> Reviewed-by: Sean Rhodes <sean@starlabs.systems> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/alderlake/romstage/romstage.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/soc/intel/alderlake/romstage/romstage.c b/src/soc/intel/alderlake/romstage/romstage.c
index 52c77be325..2927d12e5a 100644
--- a/src/soc/intel/alderlake/romstage/romstage.c
+++ b/src/soc/intel/alderlake/romstage/romstage.c
@@ -128,34 +128,34 @@ static void save_dimm_info(void)
void mainboard_romstage_entry(void)
{
- bool s3wake;
struct chipset_power_state *ps = pmc_get_power_state();
+ bool s3wake = pmc_fill_power_state(ps) == ACPI_S3;
- /* Program MCHBAR, DMIBAR, GDXBAR and EDRAMBAR */
- systemagent_early_init();
- /* Program SMBus base address and enable it */
- smbus_common_init();
/* Initialize HECI interface */
cse_init(HECI1_BASE_ADDRESS);
- /*
- * Disable Intel TXT if `CPU is unsupported` or `SoC haven't selected the config`.
- *
- * It would help to access VGA framebuffer prior calling into FSP-M.
- */
- if (!CONFIG(INTEL_TXT))
- disable_intel_txt();
if (CONFIG(SOC_INTEL_COMMON_BASECODE_DEBUG_FEATURE))
dbg_feature_cntrl_init();
- s3wake = pmc_fill_power_state(ps) == ACPI_S3;
-
if (CONFIG(SOC_INTEL_CSE_LITE_SYNC_IN_ROMSTAGE) && !s3wake) {
timestamp_add_now(TS_CSE_FW_SYNC_START);
cse_fw_sync();
timestamp_add_now(TS_CSE_FW_SYNC_END);
}
+ /* Program MCHBAR, DMIBAR, GDXBAR and EDRAMBAR */
+ systemagent_early_init();
+ /* Program SMBus base address and enable it */
+ smbus_common_init();
+
+ /*
+ * Disable Intel TXT if `CPU is unsupported` or `SoC haven't selected the config`.
+ *
+ * It would help to access VGA framebuffer prior calling into FSP-M.
+ */
+ if (!CONFIG(INTEL_TXT))
+ disable_intel_txt();
+
/* Update coreboot timestamp table with CSE timestamps */
if (CONFIG(SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY))
cse_get_telemetry_data();