From 8aa0ea4062ad9b098cb9751bbb71391e945b3d5c Mon Sep 17 00:00:00 2001 From: Sowmya Aralguppe Date: Mon, 2 Mar 2026 13:33:48 +0530 Subject: [PATCH] soc/intel/pantherlake: Keep default values for TdcTimeWindow This patch prevents coreboot from overwriting FSP defaults with zeros for unconfigured VR domains. Ref=:830097_WCL_PDG_SchChk_Rev1p5 BUG=b:None TEST=Build ocelot and verify that the system boots with correct VR parameter [SPEW ] TdcTimeWindow[0]:0x6D60 [SPEW ] TdcTimeWindow[1]:0x0 [SPEW ] TdcTimeWindow[2]:0x0 [SPEW ] TdcTimeWindow[3]:0x0 [SPEW ] Override TdcTimeWindow[0] = 28000 [SPEW ] Override TdcTimeWindow[1] = 1000 [SPEW ] Override TdcTimeWindow[2] = 0 [SPEW ] Override TdcTimeWindow[3] = 1000 FSP defaults: [SPEW ] Override TdcTimeWindow[0] = 28000 [SPEW ] Override TdcTimeWindow[1] = 1000 [SPEW ] Override TdcTimeWindow[2] = 0 [SPEW ] Override TdcTimeWindow[3] = 1000 Added print in the coreboot code [DEBUG] VR[0]: Setting TdcTimeWindow to 28000 [DEBUG] VR[1]: Setting TdcTimeWindow to 0 [DEBUG] VR[2]: Setting TdcTimeWindow to 0 [DEBUG] VR[3]: Setting TdcTimeWindow to 0 Change-Id: Ib2531b908ddf80c40c52f620229852487d3425e9 Signed-off-by: Sowmya Aralguppe Reviewed-on: https://review.coreboot.org/c/coreboot/+/91503 Reviewed-by: Pranava Y N Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik --- src/soc/intel/pantherlake/romstage/fsp_params.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/soc/intel/pantherlake/romstage/fsp_params.c b/src/soc/intel/pantherlake/romstage/fsp_params.c index d143d95688..5e652da187 100644 --- a/src/soc/intel/pantherlake/romstage/fsp_params.c +++ b/src/soc/intel/pantherlake/romstage/fsp_params.c @@ -366,8 +366,10 @@ static void fill_fspm_vr_config_params(FSP_M_CONFIG *m_cfg, } for (size_t i = 0; i < ARRAY_SIZE(config->tdc_mode); i++) { - m_cfg->TdcMode[i] = config->tdc_mode[i]; - m_cfg->TdcTimeWindow[i] = config->tdc_time_window_ms[i]; + if (config->tdc_mode[i]) + m_cfg->TdcMode[i] = config->tdc_mode[i]; + if (config->tdc_time_window_ms[i]) + m_cfg->TdcTimeWindow[i] = config->tdc_time_window_ms[i]; } for (size_t i = 0; i < ARRAY_SIZE(config->ps1_threshold); i++) {