Re: rk3588 MNT Reform2 fails to boot from SD card

Quentin Schulz
2026-01-30T09:51:54Z

Hi Vagrant,

On 1/30/26 2:46 AM, Vagrant Cascadian wrote:
> Thanks for adding support for rk3588 MNT Reform2!
>
> I tried using u-boot 2026.01 with the rk3588 MNT Reform2, but it only
> gets as far as SPL, and then fails:
>
> U-Boot SPL 2026.01 (Jan 01 1970 - 00:00:01 +0000)
> Trying to boot from MMC1
> mmc_load_image_raw_sector: mmc block read error
> Error: -38
> SPL: Unsupported Boot Device!
> SPL: failed to boot from all boot devices
> ### ERROR ### Please RESET the board ###
>
> I *think* MMC1 is eMMC, which I currently have blanked, as recovering
> from a failed install on eMMC is trickier.
>

It's surprising it isn't trying MMC1 twice as that's what it's supposed
to do due to u-boot,spl-boot-order containing "same-as-spl" and the eMMC
controller again later in the chain (see the property).

In any case, no support for the SD controller in SPL according to the
defconfig, can you try with:

"""
diff --git a/configs/mnt-reform2-rk3588_defconfig
b/configs/mnt-reform2-rk3588_defconfig
index 6adc9e4e60c..982e6c6eb20 100644
--- a/configs/mnt-reform2-rk3588_defconfig
+++ b/configs/mnt-reform2-rk3588_defconfig
@@ -50,6 +50,8 @@ CONFIG_MMC_HS400_ES_SUPPORT=y
CONFIG_SPL_MMC_HS400_ES_SUPPORT=y
CONFIG_MMC_HS400_SUPPORT=y
CONFIG_SPL_MMC_HS400_SUPPORT=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_MMC_SDHCI_ROCKCHIP=y
"""

and report if it gets you further? I think you'll be missing support for
the CD gpio as well in SPL.

So probably you need to enable SPL_GPIO:

"""
diff --git a/configs/mnt-reform2-rk3588_defconfig
b/configs/mnt-reform2-rk3588_defconfig
index 6adc9e4e60c..7485d03a0cb 100644
--- a/configs/mnt-reform2-rk3588_defconfig
+++ b/configs/mnt-reform2-rk3588_defconfig
@@ -2,6 +2,7 @@ CONFIG_ARM=y
CONFIG_SKIP_LOWLEVEL_INIT=y
CONFIG_COUNTER_FREQUENCY=24000000
CONFIG_ARCH_ROCKCHIP=y
+CONFIG_SPL_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3588-mnt-reform2"
CONFIG_ROCKCHIP_RK3588=y
CONFIG_SPL_SERIAL=y
@@ -50,6 +51,8 @@ CONFIG_MMC_HS400_ES_SUPPORT=y
CONFIG_SPL_MMC_HS400_ES_SUPPORT=y
CONFIG_MMC_HS400_SUPPORT=y
CONFIG_SPL_MMC_HS400_SUPPORT=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_MMC_SDHCI_ROCKCHIP=y
"""

aaaand also enable it in SPL DT:

"""
diff --git a/arch/arm/dts/rk3588-mnt-reform2-u-boot.dtsi
b/arch/arm/dts/rk3588-mnt-reform2-u-boot.dtsi
new file mode 100644
index 00000000000..47509f4cb37
--- /dev/null
+++ b/arch/arm/dts/rk3588-mnt-reform2-u-boot.dtsi
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include "rk3588-u-boot.dtsi"
+
+/* SD CD */
+&gpio0 {
+ bootph-pre-ram;
+ bootph-some-ram;
+};
"""

I believe?

Cheers,
Quentin