Attention is currently required from: Jayvik Desai, Kapil Porwal, Pranava Y N.
Subrata Banik has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/87090?usp=email )
Change subject: mb/google/fatcat: Enable HDA SDI based on FW config ......................................................................
mb/google/fatcat: Enable HDA SDI based on FW config
This commit modifies the handling of PCH High Definition Audio (HDA) Serial Digital Interface (SDI) enablement.
- In `devicetree.cb`, the static `pch_hda_sdi_enable` property is removed to allow varaints to override if needed. - In `fatcat/variant.c`, `variant_update_soc_memory_init_config` is introduced to dynamically configure `pch_hda_sdi_enable` based on the firmware configuration (for example: `AUDIO_ALC256_HDA` or `AUDIO_ALC256M_CG_HDA`). SDI is enabled if this FW config option is present. Otherwise, it defaults to disabled. - `variant.c` is now added for romstage as well because the SDI configuration needs to happen earlier in the boot process.
BUG=b:328770565, b:407876136 TEST=Able to reduce the boot time by 18ms for SKUs w/o HDA audio.
Change-Id: Ice28ea7445a5cb32fe8263ada363d4f45c3152f5 Signed-off-by: Subrata Banik subratabanik@google.com --- M src/mainboard/google/fatcat/variants/baseboard/fatcat/devicetree.cb M src/mainboard/google/fatcat/variants/fatcat/Makefile.mk M src/mainboard/google/fatcat/variants/fatcat/variant.c M src/mainboard/google/fatcat/variants/francka/Makefile.mk A src/mainboard/google/fatcat/variants/francka/variant.c 5 files changed, 32 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/90/87090/1
diff --git a/src/mainboard/google/fatcat/variants/baseboard/fatcat/devicetree.cb b/src/mainboard/google/fatcat/variants/baseboard/fatcat/devicetree.cb index 527e1ac..463ef09 100644 --- a/src/mainboard/google/fatcat/variants/baseboard/fatcat/devicetree.cb +++ b/src/mainboard/google/fatcat/variants/baseboard/fatcat/devicetree.cb @@ -98,7 +98,6 @@ register "pch_hda_idisp_link_tmode" = "HDA_TMODE_8T" register "pch_hda_idisp_link_frequency" = "HDA_LINKFREQ_96MHZ" register "pch_hda_idisp_codec_enable" = "true" - register "pch_hda_sdi_enable" = "{ true, false }"
device domain 0 on device ref dtt on end diff --git a/src/mainboard/google/fatcat/variants/fatcat/Makefile.mk b/src/mainboard/google/fatcat/variants/fatcat/Makefile.mk index eb361df..b9f1fd1 100644 --- a/src/mainboard/google/fatcat/variants/fatcat/Makefile.mk +++ b/src/mainboard/google/fatcat/variants/fatcat/Makefile.mk @@ -5,5 +5,5 @@ romstage-y += memory.c romstage-$(CONFIG_FW_CONFIG) += fw_config.c ramstage-y += gpio.c -ramstage-$(CONFIG_FW_CONFIG) += variant.c +romstage-$(CONFIG_FW_CONFIG) += variant.c ramstage-$(CONFIG_FW_CONFIG) += fw_config.c diff --git a/src/mainboard/google/fatcat/variants/fatcat/variant.c b/src/mainboard/google/fatcat/variants/fatcat/variant.c index 85c9243..eac362a 100644 --- a/src/mainboard/google/fatcat/variants/fatcat/variant.c +++ b/src/mainboard/google/fatcat/variants/fatcat/variant.c @@ -25,3 +25,16 @@ } } } + +void variant_update_soc_memory_init_config( + struct soc_intel_pantherlake_config *config) +{ + config->pch_hda_sdi_enable[0] = false; + config->pch_hda_sdi_enable[1] = false; + + /* HDA Audio */ + if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC256_HDA))) { + printk(BIOS_INFO, "Overridding HDA SDI lanes.\n"); + config->pch_hda_sdi_enable[0] = true; + } +} diff --git a/src/mainboard/google/fatcat/variants/francka/Makefile.mk b/src/mainboard/google/fatcat/variants/francka/Makefile.mk index f4b5d45..59936d9 100644 --- a/src/mainboard/google/fatcat/variants/francka/Makefile.mk +++ b/src/mainboard/google/fatcat/variants/francka/Makefile.mk @@ -5,6 +5,6 @@ romstage-y += gpio.c romstage-y += memory.c romstage-$(CONFIG_FW_CONFIG) += fw_config.c - +romstage-$(CONFIG_FW_CONFIG) += variant.c ramstage-y += gpio.c ramstage-$(CONFIG_FW_CONFIG) += fw_config.c diff --git a/src/mainboard/google/fatcat/variants/francka/variant.c b/src/mainboard/google/fatcat/variants/francka/variant.c new file mode 100644 index 0000000..edfb837 --- /dev/null +++ b/src/mainboard/google/fatcat/variants/francka/variant.c @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <baseboard/variants.h> +#include <fw_config.h> + +void variant_update_soc_memory_init_config( + struct soc_intel_pantherlake_config *config) +{ + config->pch_hda_sdi_enable[0] = false; + config->pch_hda_sdi_enable[1] = false; + + /* HDA Audio */ + if (fw_config_probe(FW_CONFIG(AUDIO, AUDIO_ALC256M_CG_HDA))) { + printk(BIOS_INFO, "Overridding HDA SDI lanes.\n"); + config->pch_hda_sdi_enable[0] = true; + } +}