From e9b020f02e3a481f4e0856ed549d2bafcfe03309 Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 2 Apr 2025 10:00:15 +0530 Subject: [PATCH] mb/google/fatcat: Allow board-specific FSP-M UPD override This commit introduces a mechanism to allow mainboards to override the default FSP-M UPDs for Panther Lake. - Adds `variant_update_soc_memory_init_params` as a weak function in `variants.h` and `romstage.c` for board-specific implementations. - In `romstage.c`, `mainboard_memory_init_params` now calls `variant_update_soc_memory_init_params` to apply board-specific overrides to the FSP-M UPDs. This enables finer-grained control over memory initialization parameters at the variant level. BUG=b:328770565 TEST=Able to build and boot google/fatcat. Change-Id: I403bc4270ef526363defa6cd7d22741ad42a8a76 Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/87089 Reviewed-by: Sowmya Aralguppe Reviewed-by: Jayvik Desai Reviewed-by: Pranava Y N Tested-by: build bot (Jenkins) --- src/mainboard/google/fatcat/romstage.c | 9 +++++++++ .../variants/baseboard/include/baseboard/variants.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/mainboard/google/fatcat/romstage.c b/src/mainboard/google/fatcat/romstage.c index 7b56e28e3c..8f0000c2ce 100644 --- a/src/mainboard/google/fatcat/romstage.c +++ b/src/mainboard/google/fatcat/romstage.c @@ -3,6 +3,7 @@ #include #include #include +#include #include /* @@ -16,6 +17,11 @@ __weak void fw_config_configure_pre_mem_gpio(void) /* Nothing to do */ } +__weak void variant_update_soc_memory_init_params(FSPM_UPD *memupd) +{ + /* Nothing to do */ +} + void mainboard_memory_init_params(FSPM_UPD *memupd) { const struct pad_config *pads; @@ -33,4 +39,7 @@ void mainboard_memory_init_params(FSPM_UPD *memupd) variant_get_spd_info(&spd_info); memcfg_init(memupd, mem_config, &spd_info, half_populated); + + /* Override FSP-M UPD per board if required. */ + variant_update_soc_memory_init_params(memupd); } diff --git a/src/mainboard/google/fatcat/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/fatcat/variants/baseboard/include/baseboard/variants.h index 2a70408e0d..c080dd3572 100644 --- a/src/mainboard/google/fatcat/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/fatcat/variants/baseboard/include/baseboard/variants.h @@ -4,6 +4,7 @@ #define __BASEBOARD_VARIANTS_H__ #include +#include #include #include #include @@ -23,6 +24,7 @@ const struct mb_cfg *variant_memory_params(void); void variant_get_spd_info(struct mem_spd *spd_info); int variant_memory_sku(void); bool variant_is_half_populated(void); +void variant_update_soc_memory_init_params(FSPM_UPD *memupd); void variant_update_soc_chip_config(struct soc_intel_pantherlake_config *config); enum s0ix_entry {