From: Igor Velkov <[email protected]>
mmc_get_op_cond() power-cycles the card, but both SD supplies,
TFLASH_VDD and TF_IO, are regulator-always-on in the Linux device tree,
so regulator_set_enable_if_allowed() leaves them on. After a watchdog
reset a UHS card is still at 1.8 V signalling and U-Boot fails with
"No partition table - mmc 0".
Drop regulator-always-on from both supplies for U-Boot, and keep
TFLASH_VDD off for 100 ms before it is turned back on. Linux has to
keep regulator-always-on: the boot ROM does not turn the supply back on,
see Linux commit dc7f2cb218b5 ("arm64: dts: amlogic: odroid-n2: keep SD
card regulator always on") for the same supply on ODROID-N2. TF_IO
keeps regulator-boot-on: after a reset a pull-up on the board enables
it at 3.3 V before U-Boot runs.
Tested on ODROID-HC4 with a UHS-I SDXC card and U-Boot in SPI flash:
after a watchdog reset 3/3 boots from SD (v2026.07 without this change:
0/3); cold boot, reboot and suspend to RAM unaffected.
Signed-off-by: Igor Velkov <[email protected]>
---
The card holds a btrfs root, so the main build under test also had
FS_BTRFS, CMD_BTRFS and ZSTD enabled; odroid-hc4_defconfig has none of
them.
---
arch/arm/dts/meson-sm1-odroid-hc4-u-boot.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm/dts/meson-sm1-odroid-hc4-u-boot.dtsi
b/arch/arm/dts/meson-sm1-odroid-hc4-u-boot.dtsi
index 963bf96b256..5f09ecc8f60 100644
--- a/arch/arm/dts/meson-sm1-odroid-hc4-u-boot.dtsi
+++ b/arch/arm/dts/meson-sm1-odroid-hc4-u-boot.dtsi
@@ -18,6 +18,16 @@
vref-supply = <&vddao_1v8>;
};
+/*
+ * Let the MMC core power-cycle the SD card: after a watchdog reset a UHS card
+ * is still powered and at 1.8 V signalling, and U-Boot cannot read it.
+ */
&tflash_vdd {
gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
+ /delete-property/ regulator-always-on;
+ u-boot,off-on-delay-us = <100000>;
+};
+
+&tf_io {
+ /delete-property/ regulator-always-on;
};
---
base-commit: b871f72273c183ab557e29f9bc52d9065e0aacf3
change-id: 20261013-b4-hc4-sd-power-cycle-fb24669db395
Best regards,
--
Igor Velkov <[email protected]>