[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