linux-chenxing / linux

Linux kernel source tree for linux-chenxing.
https://linux-chenxing.org
Other
10 stars 8 forks source link

SDIO errors during initialization #2

Open ltrsunny opened 2 years ago

ltrsunny commented 2 years ago

Still exist in latest branch of 5.19

 2.453947] pinctrl-msc313 1f203c00.pinctrl: pullup reg/bit isn't known for pin 94
[    2.462104] msc313-fcie 1f282000.sdio: Got CD GPIO
[    2.490586] gpio gpiochip1: (gpio-msc313-pm): failed to allocate parent hwirq 73 for hwirq 1
[    2.499779] msc313-fcie 1f282000.sdio: err during job; status: 0008, ctrl: 0206, blksz: 0200, blkcnt: 0001, cmdrspsz: 0505
[    2.510974] msc313-fcie 1f282000.sdio: err during job; cmd 1 (1), data 0 (0), busy 0 (0)
[    2.519134] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.519144] msc313-fcie 1f282000.sdio: failed to send command; cmd: 52 arg: 0x00000c00
[    2.519609] clk: Not disabling unused clocks
[    2.533719] msc313-fcie 1f282000.sdio: err during job; status: 0008, ctrl: 0206, blksz: 0200, blkcnt: 0001, cmdrspsz: 0505
[    2.538236] ALSA device list:
[    2.549150] msc313-fcie 1f282000.sdio: err during job; cmd 1 (1), data 0 (0), busy 0 (0)
[    2.552113]   No soundcards found.
[    2.560256] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.570398] msc313-fcie 1f282000.sdio: failed to send command; cmd: 52 arg: 0x80000c08
[    2.578788] Waiting for root device /dev/mmcblk0p1...
[    2.584408] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.591019] msc313-fcie 1f282000.sdio: failed to send command; cmd: 5 arg: 0x00000000
[    2.599430] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.606009] msc313-fcie 1f282000.sdio: failed to send command; cmd: 5 arg: 0x00000000
[    2.614427] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.621070] msc313-fcie 1f282000.sdio: failed to send command; cmd: 5 arg: 0x00000000
[    2.629485] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.636063] msc313-fcie 1f282000.sdio: failed to send command; cmd: 5 arg: 0x00000000
[    2.671890] mmc0: host does not support reading read-only switch, assuming write-enable
[    2.682462] mmc0: new high speed SDHC card at address 0001
[    2.689044] mmcblk0: mmc0:0001 SD16G 14.7 GiB 
[    2.696052]  mmcblk0: p1 p2
[    2.736516] EXT4-fs (mmcblk0p1): warning: mounting unchecked fs, running e2fsck is recommended
[    2.751684] EXT4-fs (mmcblk0p1): mounted filesystem without journal. Quota mode: disabled.

I put my kernel and rootfs on sd card, sometimes it hangs at booting like this:

[    1.446861] pinctrl-msc313 1f203c00.pinctrl: pullup reg/bit isn't known for pin 94
[    1.480316] msc313-fcie 1f282000.sdio: err during job; status: 0008, ctrl: 0206, blksz: 0200, blkcnt: 0001, cmdrspsz: 0505
[    1.491603] msc313-fcie 1f282000.sdio: err during job; cmd 1 (1), data 0 (0), busy 0 (0)
[    1.500103] clk: Not disabling unused clocks
[    1.504422] ALSA device list:
[    1.507453] msc313-fcie 1f282000.sdio: no response from card, removed?
[    1.514022] msc313-fcie 1f282000.sdio: failed to send command; cmd: 52 arg: 0x00000c00
[    1.517256]   No soundcards found.
[    1.522549] msc313-fcie 1f282000.sdio: err during job; status: 0008, ctrl: 0206, blksz: 0200, blkcnt: 0001, cmdrspsz: 0505
[    1.536552] msc313-fcie 1f282000.sdio: err during job; cmd 1 (1), data 0 (0), busy 0 (0)
[dio: no response from card, removed?
ltrsunny commented 2 years ago

In my system, there are some unknown performance drops which can be partially avoided by decreasing swapiness and relocating some directories to tmpfs. I am not sure whether they are related to the SD driver.

ltrsunny commented 2 years ago

And got some data write CRC errors with some cards, keep rebooting in this step.

[    2.611122] msc313-fcie 1f282000.sdio: failed to send command; cmd: 5 arg: 0x00000000
[    2.619568] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.626147] msc313-fcie 1f282000.sdio: failed to send command; cmd: 5 arg: 0x00000000
[    2.676010] mmc0: host does not support reading read-only switch, assuming write-enable
[    2.686769] mmc0: new high speed SDHC card at address b378
[    2.693329] mmcblk0: mmc0:b378 CBADS 29.3 GiB 
[    2.700150]  mmcblk0: p1 p2
[    2.729908] msc313-fcie 1f282000.sdio: data write CRC error
[    2.736456] msc313-fcie 1f282000.sdio: data write CRC error
[    2.747047] msc313-fcie 1f282000.sdio: data write CRC error
[    2.797820] usb 2-1: new high-speed USB device number 2 using fotg210-ehci
[    2.823440] msc313-fcie 1f282000.sdio: data write CRC error
[    2.829695] I/O error, dev mmcblk0, sector 10242 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
[    2.838868] Buffer I/O error on dev mmcblk0p1, logical block 0, lost sync page write
[    2.846717] EXT4-fs (mmcblk0p1): I/O error while writing superblock
[    2.853093] EXT4-fs (mmcblk0p1): mount failed
[    2.858029] VFS: Cannot open root device "mmcblk0p1" or unknown-block(179,1): error -5
[    2.866023] Please append a correct "root=" boot option; here are the available partitions:
[    2.874471] b300        30727168 mmcblk0 
[    2.874484]  driver: mmcblk
[    2.881777]   b301          650240 mmcblk0p1 350d78ef-01
[    2.881794] 
[    2.888692]   b302          128000 mmcblk0p2 350d78ef-02
[    2.888705] 
[    2.895569] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
[    2.904065] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0-rc5+ #19
[    2.910555] Hardware name: MStar/Sigmastar Armv7 (Device Tree)
[    2.916438]  unwind_backtrace from show_stack+0x10/0x14
[    2.921723]  show_stack from dump_stack_lvl+0x40/0x4c
[    2.926829]  dump_stack_lvl from panic+0xf0/0x2f0
[    2.931589]  panic from mount_block_root+0x184/0x204
[    2.936610]  mount_block_root from prepare_namespace+0x134/0x170
[    2.942674]  prepare_namespace from kernel_init+0x10/0x12c
[    2.948214]  kernel_init from ret_from_fork+0x14/0x2c
[    2.953316] Exception stack(0xc8821fb0 to 0xc8821ff8)
[    2.958411] 1fa0:                                     00000000 00000000 00000000 00000000
[    2.966648] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    2.974884] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    2.981547] CPU1: stopping
[    2.984273] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.19.0-rc5+ #19
[    2.990742] Hardware name: MStar/Sigmastar Armv7 (Device Tree)
[    2.996598]  unwind_backtrace from show_stack+0x10/0x14
[    3.001857]  show_stack from dump_stack_lvl+0x40/0x4c
[    3.006943]  dump_stack_lvl from do_handle_IPI+0x80/0x120
[    3.012376]  do_handle_IPI from ipi_handler+0x14/0x20
[    3.017459]  ipi_handler from handle_percpu_devid_irq+0x4c/0xe8
[    3.023414]  handle_percpu_devid_irq from handle_irq_desc+0x1c/0x2c
[    3.029717]  handle_irq_desc from gic_handle_irq+0x58/0x64
[    3.035238]  gic_handle_irq from generic_handle_arch_irq+0x28/0x3c
[    3.041454]  generic_handle_arch_irq from call_with_stack+0x18/0x20
[    3.047764]  call_with_stack from __irq_svc+0x98/0xc8
[    3.052847] Exception stack(0xc8861f68 to 0xc8861fb0)
[    3.057926] 1f60:                   0000062c c06d9a27 00000000 c01101a0 00000001 c0903e8c
[    3.066138] 1f80: c0c78000 c0903edc 2000406a 410fc075 00000000 00000000 c0902d00 c8861fb8
[    3.074346] 1fa0: c0106ae4 c0106ad4 60000013 ffffffff
[    3.079417]  __irq_svc from arch_cpu_idle+0x1c/0x38
[    3.084330]  arch_cpu_idle from default_idle_call+0x28/0x3c
[    3.089937]  default_idle_call from do_idle+0xb8/0x100
[    3.095110]  do_idle from cpu_startup_entry+0x18/0x1c
[    3.100197]  cpu_startup_entry from secondary_start_kernel+0xfc/0x120
[    3.106677]  secondary_start_kernel from 0x201015c0
[    3.111987] Rebooting in 3 seconds..
fifteenhex commented 2 years ago

Sorry, for some reason github is selective on what notifications it actually gives me and I only noticed this because of looking at something else.

Anyhow, the initial noise during probing is ok I think. Linux is trying all sorts of commands until the card responds. It not working after that is weird and I'll look into it.

ltrsunny commented 2 years ago

Anyhow, the initial noise during probing is ok I think. Linux is trying all sorts of commands until the card responds. It not working after that is weird and I'll look into it.

I tried vendor‘s kernel on the ’not working‘ cards and they work correctly.

In my system, there are some unknown performance drops which can be partially avoided by decreasing swapiness and relocating some directories to tmpfs. I am not sure whether they are related to the SD driver.

And the drops also disapeard.

ltrsunny commented 1 year ago

The bug is still existing in mstar_v6_3_rebase @fifteenhex

It causes booting failure in many different SD cards when they are the storage of rootfs.

[    2.378115] pinctrl-msc313 1f203c00.pinctrl: pullup reg/bit isn't known for pin 94
[    2.386247] msc313-fcie 1f282000.sdio: Got CD GPIO
[    2.415111] gpio gpiochip1: (gpio-msc313-pm): failed to allocate parent hwirq 73 for hwirq 1
[    2.424295] msc313-fcie 1f282000.sdio: err during job; status: 0008, ctrl: 0206, blksz: 0200, blkcnt: 0001, cmdrspsz: 0505
[    2.424335] clk: Not disabling unused clocks
[    2.435440] msc313-fcie 1f282000.sdio: err during job; cmd 1 (1), data 0 (0), busy 0 (0)
[    2.439768] ALSA device list:
[    2.447863] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.451008]   No soundcards found.
[    2.457404] msc313-fcie 1f282000.sdio: failed to send command; cmd: 52 arg: 0x00000c00
[    2.460869] msc313-fcie 1f282000.sdio: err during job; status: 0008, ctrl: 0206, blksz: 0200, blkcnt: 0001, cmdrspsz: 0505
[    2.480111] msc313-fcie 1f282000.sdio: err during job; cmd 1 (1), data 0 (0), busy 0 (0)
[    2.480130] msc313-fcie 1f282000.sdio: no response from card, removed?
[    2.494867] msc313-fcie 1f282000.sdio: failed to send command; cmd: 52 arg: 0x80000c08