I was seeing a lot of these…
[17541.887261] mmc0: Timeout waiting for hardware cmd interrupt.
[17541.887266] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[17541.887272] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00001002
[17541.887276] mmc0: sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[17541.887279] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[17541.887283] mmc0: sdhci: Present: 0x1fff0001 | Host ctl: 0x00000001
[17541.887287] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000080
[17541.887291] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x0000f447
[17541.887294] mmc0: sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
[17541.887298] mmc0: sdhci: Int enab: 0x00ff1003 | Sig enab: 0x00ff1003
[17541.887302] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[17541.887305] mmc0: sdhci: Caps: 0x45ee6432 | Caps_1: 0x0000a525
[17541.887309] mmc0: sdhci: Cmd: 0x00000502 | Max curr: 0x00080008
[17541.887313] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[17541.887317] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[17541.887320] mmc0: sdhci: Host ctl2: 0x00000000
[17541.887324] mmc0: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
[17541.887327] mmc0: sdhci: ============================================
Until I found this
That said “Without an SD card it’s best to put dtparam=sd_poll_once in config.txt - that will prevent (or minimise) the errors”
and it does!