Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 6814

Linux Kernel • [SOLVED] MMC not working with latest downstream kernels on RPi2 B v1.1 (BCM2836)

$
0
0
Hello!

while trying to switch from mainline kernel to latest downstream kernel (6.12.y cloned yesterday), I found that it's not possible to get MMC working on RPi2 B v1.1 (the rare BCM2836 model), when booting with
kernel build with bcm2709_defconfig without any changes, with latest firmware, proper DT (arch/arm/boot/dts/broadcom/bcm2836-rpi-2-b.dtb from downstream kernel build) and upstream_kernel=1 commented in config.txt:

Code:

Booting Linux on physical CPU 0xf00Linux version 6.12.33-rpi+ (md@rpi4) (gcc (Debian 12.2.0-14+deb12u1) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #11 SMP Fri Jun 20 15:38:35 CEST 2025CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387dCPU: div instructions available: patching division codeCPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cacheOF: fdt: Machine model: Raspberry Pi 2 Model B Rev 1.1

Code:

raspberrypi-firmware soc:firmware: Attached to firmware from 2025-05-14T12:25:47, variant start_xraspberrypi-firmware soc:firmware: Firmware hash is 17084b403fb60475b8ee2641c26049a7d54bf153
I'm getting following errors:

Code:

sdhost-bcm2835 3f202000.mmc: loaded - DMA enabled (>1)mmc0: host does not support reading read-only switch, assuming write-enablemmc0: new high speed SDXC card at address 0007mmcblk0: mmc0:0007 SD128 117 GiBsdhost-bcm2835 3f202000.mmc: wait_transfer_complete - still waiting after 100000 retriessdhost-bcm2835 3f202000.mmc: previous command (18) not complete (EDM 00010902)sdhost-bcm2835 3f202000.mmc: previous command (18) not complete (EDM 00010902)usb 1-1: new high-speed USB device number 2 using dwc2sdhost-bcm2835 3f202000.mmc: previous command (18) not complete (EDM 00010902)sdhost-bcm2835 3f202000.mmc: previous command (18) not complete (EDM 00010902)sdhost-bcm2835 3f202000.mmc: previous command (18) not complete (EDM 00010902)sdhost-bcm2835 3f202000.mmc: previous command (18) not complete (EDM 00010902) mmcblk0: unable to read partition tablemmcblk0: mmc0:0007 SD128 117 GiB (quirks 0x80000000)mmc0: card 0007 removed
These repeat several times and the kernel eventually panics due to being unable to mount root fs.

As I found that the downstream kernel recently switched to upstream SDHOST driver ( CONFIG_MMC_BCM2835) in commit cb6b027 (https://github.com/raspberrypi/linux/co ... cc76f49369),
I tried to switch back to downstream driver (CONFIG_MMC_BCM2835_SDHOST enabled with CONFIG_MMC_BCM2835 disabled) but that didn't help, with this config, there are no MMC related messages in kernel log and the kernel ends up waiting for root device forever.

I can rule out the possibility of board or card issue because the board & cards works flawlessly with mainline/upstream kernel 6.12.33, using the same upstream driver (CONFIG_MMC_BCM2835) which throws above errors in downstream kernel.

As CONFIG_MMC_BCM2835 works with upstream kernel, while neither CONFIG_MMC_BCM2835 nor CONFIG_MMC_BCM2835_SDHOST work in downstream one, I guess the cause might be in downstream kernel, but outside these drivers...

Any hints/patches how to solve this issue are welcome. In case you don't have BCM2836 board to try, I'm willing to test on mine.

Statistics: Posted by mad.daemon — Fri Jun 20, 2025 8:06 pm — Replies 4 — Views 111



Viewing all articles
Browse latest Browse all 6814

Trending Articles