mmc error on Linux version 4.4.22

This forum is for users of Microchip MPUs and who are interested in using Linux OS.

Moderator: nferre

gchiii
Posts: 6
Joined: Fri Jan 22, 2010 4:38 pm

mmc error on Linux version 4.4.22

Mon Oct 10, 2016 5:33 pm

when I try to use emmc on a board very similar to the sama5d2 xplained, I get the following errors:

[ 618.790000] sdhci: Tuning procedure failed, falling back to fixed sampling clock
[ 618.800000] mmc0: Got data interrupt 0x00400000 even though no data operation was in progress.
[ 618.810000] mmcblk0: retrying because a re-tune was needed
[ 619.130000] sdhci: Tuning procedure failed, falling back to fixed sampling clock
[ 619.910000] sdhci: Tuning procedure failed, falling back to fixed sampling clock
[ 620.670000] mmcblk0: retrying because a re-tune was needed
[ 635.160000] mmc0: Timeout waiting for hardware interrupt.
[ 635.160000] ------------[ cut here ]------------
[ 635.160000] WARNING: CPU: 0 PID: 0 at drivers/mmc/host/sdhci.c:983 sdhci_send_command+0x9dc/0xc58()
[ 635.160000] Modules linked in: bluetooth asix usbnet mii atmel_usba_udc uio_pdrv_genirq uio
[ 635.160000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.4.22-00418-gc3678b1-dirty #23
[ 635.160000] Hardware name: Atmel SAMA5
[ 635.160000] [<c0014fcc>] (unwind_backtrace) from [<c0012974>] (show_stack+0x10/0x14)
[ 635.160000] [<c0012974>] (show_stack) from [<c001e1d8>] (warn_slowpath_common+0x74/0xac)
[ 635.160000] [<c001e1d8>] (warn_slowpath_common) from [<c001e22c>] (warn_slowpath_null+0x1c/0x24)
[ 635.160000] [<c001e22c>] (warn_slowpath_null) from [<c0363c54>] (sdhci_send_command+0x9dc/0xc58)
[ 635.160000] [<c0363c54>] (sdhci_send_command) from [<c03650ec>] (sdhci_finish_data+0xd0/0x1e4)
[ 635.160000] [<c03650ec>] (sdhci_finish_data) from [<c0365f10>] (sdhci_timeout_timer+0x60/0xb0)
[ 635.160000] [<c0365f10>] (sdhci_timeout_timer) from [<c004ecb8>] (call_timer_fn+0x24/0x98)
[ 635.160000] [<c004ecb8>] (call_timer_fn) from [<c004f1e4>] (run_timer_softirq+0xf4/0x1a8)
[ 635.160000] [<c004f1e4>] (run_timer_softirq) from [<c00207b4>] (__do_softirq+0xd0/0x220)
[ 635.160000] [<c00207b4>] (__do_softirq) from [<c0046674>] (__handle_domain_irq+0x50/0xa4)
[ 635.160000] [<c0046674>] (__handle_domain_irq) from [<c0013394>] (__irq_svc+0x54/0x70)
[ 635.160000] [<c0013394>] (__irq_svc) from [<c034cfac>] (cpuidle_enter_state+0xd8/0x240)
[ 635.160000] [<c034cfac>] (cpuidle_enter_state) from [<c003ecdc>] (cpu_startup_entry+0x104/0x1a8)
[ 635.160000] [<c003ecdc>] (cpu_startup_entry) from [<c06ccc0c>] (start_kernel+0x334/0x39c)
[ 635.160000] ---[ end trace 141ff8114f640909 ]---
[ 635.180000] mmcblk0: error -110 sending stop command, original cmd response 0x0, card status 0x400900
[ 635.190000] mmcblk0: error -110 transferring data, sector 4733226, nr 8, cmd response 0x0, card status 0x0
[ 635.200000] blk_update_request: I/O error, dev mmcblk0, sector 4733226
[ 635.200000] EXT4-fs warning (device mmcblk0p1): ext4_end_bio:329: I/O error -5 writing to inode 130596 (offset 0 size 4096 starting block 591654)
[ 635.210000] Buffer I/O error on device mmcblk0p1, logical block 591649


where should I go for help diagnosing this problem?
blue_z
Location: USA
Posts: 1550
Joined: Thu Apr 19, 2007 10:15 pm

Re: mmc error on Linux version 4.4.22

Thu Oct 13, 2016 10:40 pm

gchiii wrote:when I try to use emmc on a board very similar to the sama5d2 xplained ...
Linux is a poor tool for checking out hardware.
What evidence do you have that this peripheral is fully functional?

Regards
gchiii
Posts: 6
Joined: Fri Jan 22, 2010 4:38 pm

Re: mmc error on Linux version 4.4.22

Fri Oct 14, 2016 7:17 pm

blue_z wrote:
gchiii wrote:when I try to use emmc on a board very similar to the sama5d2 xplained ...
Linux is a poor tool for checking out hardware.
What evidence do you have that this peripheral is fully functional?

Regards
I have no evidence. I have tried to read and write the emmc a little bit from u-boot, but when I saw the errors on linux I wanted to know how to troubleshoot.
It seems that the problem occurs when doing a multiblock write. I captured the dmesg output with some extra debugging enabled.


[ 2234.220000] <mmc0: starting CMD23 arg 00000008 flags 00000015>
[ 2234.220000] mmc0: starting CMD18 arg 00010e12 flags 000000b5
[ 2234.220000] mmc0: blksz 512 blocks 8 flags 00000200 tsac 400 ms nsac 1000
[ 2234.220000] mmc0: CMD12 arg 00000000 flags 00000095
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.220000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.230000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2234.240000] sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000020
[ 2244.260000] mmc0: Timeout waiting for hardware interrupt.
[ 2244.260000] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 2244.260000] sdhci: Sys addr: 0x00000008 | Version: 0x00001502
[ 2244.260000] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000008
[ 2244.260000] sdhci: Argument: 0x00010e12 | Trn mode: 0x0000003b
[ 2244.260000] sdhci: Present: 0x01ff0207 | Host ctl: 0x00000035
[ 2244.260000] sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 2244.260000] sdhci: Wake-up: 0x00000000 | Clock: 0x00000227
[ 2244.260000] sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 2244.260000] sdhci: Int enab: 0x02ff000b | Sig enab: 0x02ff000b
[ 2244.260000] sdhci: AC12 err: 0x00000002 | Slot int: 0x00000000
[ 2244.260000] sdhci: Caps: 0x27ec0c8c | Caps_1: 0x00270f77
[ 2244.260000] sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
[ 2244.260000] sdhci: Host ctl2: 0x0000008b
[ 2244.260000] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x24187208
[ 2244.260000] sdhci: ===========================================
[ 2244.260000] ------------[ cut here ]------------
[ 2244.260000] WARNING: CPU: 0 PID: 0 at drivers/mmc/host/sdhci.c:983 sdhci_send_command+0x9dc/0xc58()
gchiii
Posts: 6
Joined: Fri Jan 22, 2010 4:38 pm

Re: mmc error on Linux version 4.4.22

Thu Apr 13, 2017 5:37 pm

what does the following mean, what causes it?

[235735.820000] sdhci: Tuning procedure failed, falling back to fixed sampling clock
[235735.830000] mmc0: Got data interrupt 0x00400000 even though no data operation was in progress.
[235735.830000] sdhci: =========== REGISTER DUMP (mmc0)===========
[235735.830000] sdhci: Sys addr: 0x00000020 | Version: 0x00001502
[235735.830000] sdhci: Blk size: 0x00007200 | Blk cnt: 0x0000001b
[235735.830000] sdhci: Argument: 0x00000000 | Trn mode: 0x00000023
[235735.830000] sdhci: Present: 0x01fb0000 | Host ctl: 0x00000035
[235735.830000] sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[235735.830000] sdhci: Wake-up: 0x00000000 | Clock: 0x00000227
[235735.830000] sdhci: Timeout: 0x0000000e | Int stat: 0x00000003
[235735.830000] sdhci: Int enab: 0x02ff000b | Sig enab: 0x02ff000b
[235735.830000] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000001
[235735.830000] sdhci: Caps: 0x27ec0c8c | Caps_1: 0x00270f77
[235735.830000] sdhci: Cmd: 0x00000c1b | Max curr: 0x00000000
[235735.830000] sdhci: Host ctl2: 0x0000000b
[235735.830000] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x241e8208
[235735.830000] sdhci: ===========================================
[235735.910000] mmcblk0: error -84 transferring data, sector 4460088, nr 32, cmd response 0x900, card status 0xc00
[235735.920000] blk_update_request: I/O error, dev mmcblk0, sector 4460088
[235735.930000] blk_update_request: I/O error, dev mmcblk0, sector 4460096
[235735.930000] blk_update_request: I/O error, dev mmcblk0, sector 4460104
[235735.940000] blk_update_request: I/O error, dev mmcblk0, sector 4460112
[235735.950000] Aborting journal on device mmcblk0p1-8.

Return to “Linux”

Who is online

Users browsing this forum: No registered users and 0 guests