From 9e39acc3c1e592cdf5923e4abf46d2bbf5749dde Mon Sep 17 00:00:00 2001 From: Mario Scheithauer Date: Tue, 7 Jan 2025 14:42:49 +0100 Subject: [PATCH] mb/siemens/mc_ehl2: Limit eMMC speed mode to DDR50 Due to layout restrictions on mc_ehl2, the eMMC interface is limited to operate in DDR50 mode. The alternative modes SDR104 and SDR50 are not supported. Limit the capabilities in the eMMC controller to DDR50 mode only so that the eMMC driver in OS will choose the right mode for operation even if the attached eMMC card supports higher modes. BUG=none TEST=Boot into Linux and check dmesg output for mmc modes Change-Id: I668bb5b0b3197497920b36bcf283c25d2a0c00ba Signed-off-by: Mario Scheithauer Reviewed-on: https://review.coreboot.org/c/coreboot/+/85881 Reviewed-by: Uwe Poeche Reviewed-by: Werner Zeh Tested-by: build bot (Jenkins) --- .../siemens/mc_ehl/variants/mc_ehl2/mainboard.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c b/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c index dd90d6f73a..ac3ab14eef 100644 --- a/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c +++ b/src/mainboard/siemens/mc_ehl/variants/mc_ehl2/mainboard.c @@ -50,6 +50,15 @@ void variant_mainboard_final(void) /* Use preset driver strength from preset value registers. */ clrsetbits16(res2mmio(res, HOSTCTRL2, 0), 0, HOSTCTRL2_PRESET); } + + dev = pcidev_path_on_root(PCH_DEVFN_EMMC); + if (dev) { + struct resource *res = probe_resource(dev, PCI_BASE_ADDRESS_0); + if (!res) + return; + + disable_sdr_modes(res); + } } static void finalize_boot(void *unused)