On Sat, 22 Jun 2019 10:59:29 +0200, Stefan Wahren wrote:
it does matter, because there is zero free documentation about the
sdhost controller on the BCM2835.
"Kingston C16G JAPAN, SDC2", bought in 2009.
Raspbian uses their downstream sdhost driver
bcm2835-sdhost, while Fedora the mainline driver bcm2835. This one was
derived from the downstream one around kernel 4.12.
So why not to update upstream kernel from the downstream one again...
> # I have verified now that it is a regression
> # since (as this kernel boots fine directly from my Kingston MicroSD):
> # Fedora-Server-29-1.2.aarch64.raw.xz = kernel-4.18.16-300.fc29.aarch64
Thanks this is very helpful. Could you please test Fedora kernel 4.19
and 5.0 for aarch64? This would narrow down the issue much more.
I have tried to put the kernel-4.18.16-300.fc29 driver
drivers/mmc/host/bcm2835.c into kernel-5.1.12-300.fc30:
https://people.redhat.com/jkratoch/bcmbug.diff
https://koji.fedoraproject.org/koji/taskinfo?taskID=35710809
And it booted without any error - normally it fails in 60-100 seconds after
boot like:
[ 70.246299] sdhost-bcm2835 3f202000.mmc: timeout waiting for hardware interrupt.
But then with my custom built kernel I ran 'dnf distro-sync' and it failed
again, just later:
[ 1059.688583] sdhost-bcm2835 3f202000.mmc: timeout waiting for hardware interrupt.
[ 1059.793528] sdhost-bcm2835 3f202000.mmc: bcm2835_read_wait_sdcmd: timeout (100 ms)
...
[ 1060.341279] sdhost-bcm2835 3f202000.mmc: bcm2835_read_wait_sdcmd: timeout (100 ms)
[ 1060.346235] sdhost-bcm2835 3f202000.mmc: previous command never completed.
[ 1060.350784] print_req_error: I/O error, dev mmcblk0, sector 9965568 flags 1
[ 1060.350832] mmc0: card 495c removed
[ 1060.355420] EXT4-fs warning (device mmcblk0p3): ext4_end_bio:318: I/O error 10 writing
to inode 8907 (offset 0 size 2572288 starting block 1245986)
[ 1060.366554] Buffer I/O error on device mmcblk0p3, logical block 932129
OK, I see maybe I will give up and just buy a newer MicroSD card...
Thanks,
Jan Kratochvil