[RFC 0/2] sdhci-iproc CMD timeouts

From: Nicolas Saenz Julienne
Date: Thu Feb 25 2021 - 04:53:36 EST


I'm seeing a rather odd behavior from sdhci-iproc's integration in BCM2711
(Raspberry Pi 4's SoC), and would appreciate some opinions.

The controller will timeout on SDHCI CMDs under the following conditions:

- No SD card plugged in (the card polling thread is running, CD irq disabled).
- BCM2711's VPU clock[1] configured at 500MHz or more, lower clocks are OK.

There is no specific command that will time out, it seems random.

Here's what I found out. The SDHCI controller runs at 100MHz, by bumping the
frequency to 150MHz the issue disapears. Might be pure luck, or maybe I hit the
nail and it's proper interference. Can't say.

Regards,
Nicolas

---

[1] For those who are not aware, here's the relationship between VPU's clock
and emmc2's:

osc 54000000
plld 3000000091
plld_per 750000023
emmc2 149882908
pllc 2999999988
pllc_core0 999999996
vpu 499999998

Nicolas Saenz Julienne (2):
ARM: dts: Fix-up EMMC2 controller's frequency
mmc: sdhci-iproc: Set clock frequency as per DT

arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 6 ++++++
drivers/mmc/host/sdhci-iproc.c | 10 ++++++++++
2 files changed, 16 insertions(+)

--
2.30.1