summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/icelake/romstage/fsp_params.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/icelake/romstage/fsp_params.c')
-rw-r--r--src/soc/intel/icelake/romstage/fsp_params.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/soc/intel/icelake/romstage/fsp_params.c b/src/soc/intel/icelake/romstage/fsp_params.c
index 4801bd9ff904..89dc99a18aa6 100644
--- a/src/soc/intel/icelake/romstage/fsp_params.c
+++ b/src/soc/intel/icelake/romstage/fsp_params.c
@@ -25,11 +25,22 @@ static void soc_memory_init_params(FSP_M_CONFIG *m_cfg,
const struct soc_intel_icelake_config *config)
{
unsigned int i;
- const struct device *dev;
+ const struct device *dev = pcidev_path_on_root(SA_DEVFN_IGD);
uint32_t mask = 0;
- /* Set IGD stolen size to 60MB. */
- m_cfg->IgdDvmt50PreAlloc = 0xFE;
+ if (!dev || !dev->enabled) {
+ /*
+ * Skip IGD initialization in FSP if device
+ * is disable in devicetree.cb.
+ */
+ m_cfg->InternalGfx = 0;
+ m_cfg->IgdDvmt50PreAlloc = 0;
+ } else {
+ m_cfg->InternalGfx = 1;
+ /* Set IGD stolen size to 60MB. */
+ m_cfg->IgdDvmt50PreAlloc = 0xFE;
+ }
+
m_cfg->TsegSize = CONFIG_SMM_TSEG_SIZE;
m_cfg->IedSize = CONFIG_IED_REGION_SIZE;
m_cfg->SaGv = config->SaGv;