[REGRESSION] mmc: "unable to select a mode: -5" on i.MX8M/AM62 platforms

Vitor Soares ivitro at gmail.com
Thu Jan 8 00:15:55 CET 2026


Hi,

U-Boot 2026.01 fails to initialize MMC devices on multiple platforms
with "unable to select a mode: -5" during mmc_select_mode().

Affected platforms:
- Verdin iMX8M Mini (SPL boot failure - cannot boot at all)
- Verdin iMX8M Plus (MMC init fails in U-Boot proper - cannot boot)
- SMARC iMX8M Plus (MMC init fails in U-Boot proper)
- Verdin AM62 (boot failure, no output)

All platforms use eMMC and worked correctly prior to this regression.

Bisect results:
- Last known good commit: 228810d0bac3
- Known bad commit: 36aeeb591b0d

Between these commits, several MMC-related changes were merged. These
seem particularly relevant:
commit aebb523a2381 ("mmc: mmc-uclass: Use max-frequency from device tree with
default handling")
commit 1e40e419aeb2 ("mmc: sdhci-cadence: Use max-frequency property from device
tree")
commit fa7e82127fad ("mmc: sdhci-cadence: Set controller and PHY speed modes for
SD and eMMC cards")

Could someone familiar with these recent changes help identify what might have
changed in the mode selection logic?

=== Example logs ===

Verdin iMX8M Mini (SPL failure):

U-Boot SPL 2026.01-0.0.0-devel+git.53c0d5b38795 (Jan 06 2026 - 20:44:27 +0000)
WDT:   Started watchdog at 30280000 with servicing every 1000ms (60s timeout)
SEC0:  RNG instantiated
Trying to boot from MMC1
unable to select a mode: -5
spl: mmc init failed with error: -524
Error: -524
SPL: Unsupported Boot Device!
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

---

Verdin iMX8M Plus (U-Boot proper failure):

U-Boot SPL 2026.01-0.0.0-devel+git.53c0d5b38795 (Jan 06 2026 - 20:44:27 +0000)
DDR configured as dual rank
WDT:   Started watchdog at 30280000 with servicing every 1000ms (60s timeout)
SEC0:  RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
Find img info 0x?, size 1208151552
Need continue download 1024
load_simple_fit: Skip load 'tee': image size is 0!
NOTICE:  Do not release JR0 to NS as it can be used by HAB
NOTICE:  BL31: v2.12.0(release):lf-6.12.20-2.0.0-dirty
NOTICE:  BL31: Built : 08:15:07, May  9 2025

U-Boot 2026.01-0.0.0-devel+git.53c0d5b38795 (Jan 06 2026 - 20:44:27 +0000)

CPU:   NXP i.MX8MP[8] Rev1.1 A53 at 1200 MHz
CPU:   Industrial temperature grade (-40C to 105C) at 23C
DRAM:  8 GiB
Core:  309 devices, 31 uclasses, devicetree: separate
WDT:   Started watchdog at 30280000 with servicing every 1000ms (60s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... unable to select a mode: -5

Verdin iMX8MP # saveenv
Saving Environment to MMC... unable to select a mode: -5
No block device
Failed (1)

---

SMARC iMX8M Plus:

U-Boot SPL 2026.01-0.0.0-devel+git.53c0d5b38795 (Jan 06 2026 - 20:44:27 +0000)
Training FAILED
DDR configured as single rank
SEC0:  RNG instantiated
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
Find img info 0x?, size 1208152064
Need continue download 1024
load_simple_fit: Skip load 'tee': image size is 0!
NOTICE:  Do not release JR0 to NS as it can be used by HAB
NOTICE:  BL31: v2.12.0(release):lf-6.12.20-2.0.0-dirty
NOTICE:  BL31: Built : 08:15:07, May  9 2025

U-Boot 2026.01-0.0.0-devel+git.53c0d5b38795 (Jan 06 2026 - 20:44:27 +0000)

CPU:   NXP i.MX8MP[8] Rev1.1 A53 at 1200 MHz
CPU:   Industrial temperature grade (-40C to 105C) at 23C
DRAM:  4 GiB
Core:  317 devices, 32 uclasses, devicetree: separate
WDT:   Started watchdog at 30280000 with servicing every 1000ms (60s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... unable to select a mode: -5
*** Warning - No block device, using default environment
unable to select a mode: -5
MMC init failed
---

I'm available to test patches or provide additional debug output if needed.

Best regards,
Vitor Soares


More information about the U-Boot mailing list