Subrata Banik has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56382 )
Change subject: soc/intel/alderlake: Fix booting issue with MultiPhaseSiInit API skip ......................................................................
soc/intel/alderlake: Fix booting issue with MultiPhaseSiInit API skip
This patch honors soc_fsp_multi_phase_init_is_enable() function while assigning EnableMultiPhaseSiliconInit UPD.
FSP would results into a hang while calling FSP-Notify Phase if EnableMultiPhaseSiliconInit UPD remains enable but bootloader don't make call into MultiPhaseSiInit as soc_fsp_multi_phase_init_is_enable() returns 0.
Ensures EnableMultiPhaseSiliconInit UPD is getting updated based on return value from soc_fsp_multi_phase_init_is_enable().
Change-Id: I019fa8364605f5061d56e2d80b20e1a91857c423 Signed-off-by: Subrata Banik subrata.banik@intel.com --- M src/soc/intel/alderlake/fsp_params.c 1 file changed, 12 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/82/56382/1
diff --git a/src/soc/intel/alderlake/fsp_params.c b/src/soc/intel/alderlake/fsp_params.c index 9dec31c..3970eb4 100644 --- a/src/soc/intel/alderlake/fsp_params.c +++ b/src/soc/intel/alderlake/fsp_params.c @@ -636,8 +636,18 @@
static void arch_silicon_init_params(FSPS_ARCH_UPD *s_arch_cfg) { - /* EnableMultiPhaseSiliconInit for running MultiPhaseSiInit */ - s_arch_cfg->EnableMultiPhaseSiliconInit = 1; + /* + * EnableMultiPhaseSiliconInit ARCH UPD for running MultiPhaseSiInit + * if SoC user allows it. + * + * soc_fsp_multi_phase_init_is_enable() function will return if MultiPhaseInit + * call is required for the SoC and only enable EnableMultiPhaseSiliconInit UPD + * if soc_fsp_multi_phase_init_is_enable() returns 1. An override of + * soc_fsp_multi_phase_init_is_enable() inside SoC dirctory might wish to skip + * MultiPhaseInit call, in such case don't default enable this + * EnableMultiPhaseSiliconInit UPD. + */ + s_arch_cfg->EnableMultiPhaseSiliconInit = soc_fsp_multi_phase_init_is_enable(); }
static void soc_silicon_init_params(FSP_S_CONFIG *s_cfg,