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:
I'm getting following errors: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.
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.1Code:
raspberrypi-firmware soc:firmware: Attached to firmware from 2025-05-14T12:25:47, variant start_xraspberrypi-firmware soc:firmware: Firmware hash is 17084b403fb60475b8ee2641c26049a7d54bf153Code:
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 removedAs 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