SD card timeouts on older Raspberry Pi 4 models on 14.1-BETA

From: Mike Karels <mike_at_karels.net>
Date: Tue, 07 May 2024 16:50:38 UTC
I tried to install 14.1-BETA1 on one of the first-generation Raspberry Pi 4
systems.  The kernel loads and starts, but is unable to mount the root file
system due to timeout errors like this:

sdhci_bcm1-slot0: Controller timeout
[register dump]
mmcsd0: Error indicated: 1 Timeout
[several timeouts later]
Mounting from ufs:/dev/ufs/rootfs failed with error 19.

Mark Millard also saw the error on a similar-vintage RPi4, but not on a newer
model (C0T).  The EEPROM had been updated on his older RPi4 recently; my
EEPROM was updated a year or so ago.  My RPi3 boots also; it seems to use
the same driver for the sdhci.   I have used the same SD card for both BETA1
and a recent snapshot of -current, with only BETA1 failing.  If I recall
correctly, 14.0 worked on the SD card too.

I tested several recent snapshots of -current, and they seemed to work without
problems.  I haven't noticed relevant differences between 14.1 and -current,
e.g. the sdhci controller driver, but something must be different.  Anyone have
an idea, or suggestion on where to look?  It would be nice to resolve this
before 14.1-RELEASE.

		Mike

Excerpts from the boot log:

sdhci_bcm1: <Broadcom 2708 SDHCI controller> mem 0x7e340000-0x7e3400ff irq 79 on simplebus1
mmc1: <MMC/SD bus> on sdhci_bcm1
...
mmcsd0: 63GB <SDHC ASTC 0.0 SN 000002D9 MFG 09/2022 by 159 TI> at mmc1 50.0MHz/4bit/65535-block
...
sdhci_bcm1-slot0: Controller timeout
sdhci_bcm1-slot0: ============== REGISTER DUMP ==============
sdhci_bcm1-slot0: Sys addr: 0x000000c8 | Version:  0x00001002
sdhci_bcm1-slot0: Blk size: 0x00000200 | Blk cnt:  0x00000001
sdhci_bcm1-slot0: Argument: 0x0747afff | Trn mode: 0x00000012
sdhci_bcm1-slot0: Present:  0x1fff0a06 | Host ctl: 0x00000007
sdhci_bcm1-slot0: Power:    0x0000000f | Blk gap:  0x00000080
sdhci_bcm1-slot0: Wake-up:  0x00000000 | Clock:    0x00000107
sdhci_bcm1-slot0: Timeout:  0x00000003 | Int stat: 0x00000021
sdhci_bcm1-slot0: Int enab: 0x01ff003b | Sig enab: 0x01ff0008
sdhci_bcm1-slot0: AC12 err: 0x00000000 | Host ctl2:0x00000000
sdhci_bcm1-slot0: Caps:     0x45ee6432 | Caps2:    0x0000a525
sdhci_bcm1-slot0: Max curr: 0x00080008 | ADMA err: 0x00000000
sdhci_bcm1-slot0: ADMA addr:0x00000000 | Slot int: 0x00000000
sdhci_bcm1-slot0: ===========================================
mmcsd0: Error indicated: 1 Timeout
...
mmcsd0: Error indicated: 1 Timeout
mountroot: waiting for device /dev/ufs/rootfs...
Mounting from ufs:/dev/ufs/rootfs failed with error 19.