From 16ff3b33cec7d598be47102e157d8d7d2dadc222 Mon Sep 17 00:00:00 2001 From: Mengqi Zhang Date: Mon, 3 Mar 2025 16:20:06 +0800 Subject: [PATCH] mb/google/skywalker: Add SD card configurations Pass SD card detect GPIO to payloads for SD card detection and configure SD card in ramstage. Currently, only Skywalker supports the SD card. BUG=b:379008996 BRANCH=none TEST=Build pass. Check storage in depthcharge. firmware-shell: storage init * 0: UFS LUN 0 1: removable mtk_mmc Signed-off-by: Mengqi Zhang Change-Id: I3b198d5e237006c299581ab4a5da8577dbcca7a6 Reviewed-on: https://review.coreboot.org/c/coreboot/+/87884 Reviewed-by: Yu-Ping Wu Reviewed-by: Yidi Lin Tested-by: build bot (Jenkins) --- src/mainboard/google/skywalker/Kconfig | 5 +++++ src/mainboard/google/skywalker/chromeos.c | 7 +++++++ src/mainboard/google/skywalker/mainboard.c | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/src/mainboard/google/skywalker/Kconfig b/src/mainboard/google/skywalker/Kconfig index b5134a529a..49b3d21718 100644 --- a/src/mainboard/google/skywalker/Kconfig +++ b/src/mainboard/google/skywalker/Kconfig @@ -9,6 +9,9 @@ config BOARD_GOOGLE_SKYWALKER_COMMON if BOARD_GOOGLE_SKYWALKER_COMMON +config SKYWALKER_SDCARD_INIT + def_bool BOARD_GOOGLE_SKYWALKER + config VBOOT select EC_GOOGLE_CHROMEEC_SWITCHES select VBOOT_VBNV_FLASH @@ -31,6 +34,8 @@ config BOARD_SPECIFIC_OPTIONS select FW_CONFIG select FW_CONFIG_SOURCE_CHROMEEC_CBI select RTC + select COMMONLIB_STORAGE + select COMMONLIB_STORAGE_MMC config MAINBOARD_DIR string diff --git a/src/mainboard/google/skywalker/chromeos.c b/src/mainboard/google/skywalker/chromeos.c index c5b9f8ee16..26f06442d9 100644 --- a/src/mainboard/google/skywalker/chromeos.c +++ b/src/mainboard/google/skywalker/chromeos.c @@ -41,6 +41,13 @@ void fill_lb_gpios(struct lb_gpios *gpios) {GPIO_GSC_AP_INT_ODL.id, ACTIVE_HIGH, -1, "TPM interrupt"}, }; lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios)); + + if (CONFIG(SKYWALKER_SDCARD_INIT)) { + struct lb_gpio sd_card_gpios[] = { + { GPIO_SD_CD_ODL.id, ACTIVE_LOW, -1, "SD card detect" }, + }; + lb_add_gpios(gpios, sd_card_gpios, ARRAY_SIZE(sd_card_gpios)); + } } int cr50_plat_irq_status(void) diff --git a/src/mainboard/google/skywalker/mainboard.c b/src/mainboard/google/skywalker/mainboard.c index af27c8268c..74c3ea715f 100644 --- a/src/mainboard/google/skywalker/mainboard.c +++ b/src/mainboard/google/skywalker/mainboard.c @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include #include @@ -23,6 +25,9 @@ static void mainboard_init(struct device *dev) spm_init(); power_on_fpmcu(); + if (CONFIG(SKYWALKER_SDCARD_INIT)) + mtk_msdc_configure_sdcard(); + if (CONFIG(ARM64_USE_ARM_TRUSTED_FIRMWARE)) register_reset_to_bl31(GPIO_AP_EC_WARM_RST_REQ.id, true); }