Bug 213753
Summary: | Kernel boots failed with "mmc1: invalid bus width" on Raspberry Pi 400 | ||
---|---|---|---|
Product: | Drivers | Reporter: | Jian-Hong Pan (jhp) |
Component: | MMC/SD | Assignee: | drivers_mmc-sd |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | ArtyTapper, gsmolders, pbrobinson, voidshine |
Priority: | P1 | ||
Hardware: | ARM | ||
OS: | Linux | ||
Kernel Version: | 5.14-rc1 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
U-Boot & kernel 5.14-rc1 dmesg log
The kernel build config for comment #0 |
Description
Jian-Hong Pan
2021-07-16 04:25:28 UTC
Created attachment 297891 [details] The kernel build config for comment #0 Forgot to mention that both U-Boot and Linux kernel are built with aarch64 toolchain. Tested with kernel 5.14-rc2. This issue still can be reproduced. Actually, kernel gets "mmc1: invalid bus width", because mmc_decode_scr() decodes the SCR register failed which is read in mmc_app_send_scr(). And, mmc_app_send_scr() sends the command "MMC_APP_CMD" + "SD_APP_SEND_SCR" to the SD card. The SD card should return the value of its SCR register via the data line. So, mmc_app_send_scr() uses DMA mechanism to get the value from data lines. However, it only reads data with value zero from DMA. This issue also affects my Raspberry Pi 4 (4gb) using kernel 5.11.4. There are some reports on the internet linking this error to hardware issues with the used sdcards. Tested with Linux kernel 5.14-rc7 again. But, still get the same error issue. I'm having the same issue on a raspberry pi 4 b 8gb as well as a cm4 module. +1 having the same issue with AArch64 on this CPU: Hardware : BCM2711 Revision : c03114 Model : Raspberry Pi 4 Model B Rev 1.4 Tried a few different SD cards, a mix of Samsung and SanDisk @ 16GB, 32GB, 256GB... all fail with the same messages when using AArch64 builds, and they all run ARMv7 builds successfully on the same machine. I haven't found evidence of a hardware issue yet, it seems to be this kernel/CPU/architecture combination specifically. Found the patch series for U-Boot helps this issue: "rpi: Copy eth PHY address from fw DT to loaded DT" https://lore.kernel.org/u-boot/20220819085646.341575-1-antoine@karthanis.net/ |