Tim Crawford has uploaded this change for review.

View Change

soc/intel/mtl: Set HDA subsystem ID during FSP-M

Intel introduced a new UPD specifically for setting the HDA subsystem ID
in FSM-M. Using SiSsidTablePtr in FSP-S no longer works as it will be
locked with a default value of 0 by that point.

Change-Id: I5e668747d99b955b0a3946524c5918d328b8e1d3
Signed-off-by: Tim Crawford <tcrawford@system76.com>
---
M src/soc/intel/meteorlake/romstage/fsp_params.c
1 file changed, 8 insertions(+), 0 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/31/82731/1
diff --git a/src/soc/intel/meteorlake/romstage/fsp_params.c b/src/soc/intel/meteorlake/romstage/fsp_params.c
index 0f44d65..807f9fd 100644
--- a/src/soc/intel/meteorlake/romstage/fsp_params.c
+++ b/src/soc/intel/meteorlake/romstage/fsp_params.c
@@ -282,6 +282,8 @@
static void fill_fspm_audio_params(FSP_M_CONFIG *m_cfg,
const struct soc_intel_meteorlake_config *config)
{
+ const struct device *dev;
+
/* Audio: HDAUDIO_LINK_MODE I2S/SNDW */
m_cfg->PchHdaEnable = is_devfn_enabled(PCI_DEVFN_HDA);
m_cfg->PchHdaDspEnable = config->pch_hda_dsp_enable;
@@ -302,6 +304,12 @@
memset(m_cfg->PchHdaAudioLinkDmicEnable, 0, sizeof(m_cfg->PchHdaAudioLinkDmicEnable));
memset(m_cfg->PchHdaAudioLinkSspEnable, 0, sizeof(m_cfg->PchHdaAudioLinkSspEnable));
memset(m_cfg->PchHdaAudioLinkSndwEnable, 0, sizeof(m_cfg->PchHdaAudioLinkSndwEnable));
+
+ dev = pcidev_path_on_root(PCI_DEVFN_HDA);
+ if (dev) {
+ uint32_t ssid = (dev->subsystem_device << 16) | dev->subsystem_vendor;
+ m_cfg->PchHdaSubSystemIds = ssid;
+ }
}

static void fill_fspm_cnvi_params(FSP_M_CONFIG *m_cfg,

To view, visit change 82731. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: coreboot
Gerrit-Branch: main
Gerrit-Change-Id: I5e668747d99b955b0a3946524c5918d328b8e1d3
Gerrit-Change-Number: 82731
Gerrit-PatchSet: 1
Gerrit-Owner: Tim Crawford <tcrawford@system76.com>