AnsweredAssumed Answered

esdhc, timeout some time after cmd 18

Question asked by Angelo Dureghello on Aug 31, 2019
Latest reply on Sep 5, 2019 by Angelo Dureghello

Hi all,

 

i am working inside a ColdFire mcf54415 esdhc driver in linux (the sdhci layer is common), so the issue may be visible on chips with same/similar controller too as imx and others.

 

After i mount /dev/mmcblk0p1, i can always read properly, but when i try a write on the card as "cat test > testfile", and in short i get

 

[  576.590000] c: 18  arg 000fabd8
[  576.590000] IRQ status 0x00000001
[  576.590000] sdhci_irq() exiting 1

/var/tmp/sd # [  586.720000] mmc0: Timeout waiting for hardware interrupt.
[  586.720000] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[  586.720000] mmc0: sdhci: Sys addr:  0x47420010 | Version:  0x00000000
[  586.720000] mmc0: sdhci: Blk size:  0x00000012 | Blk cnt:  0x00000000
[  586.720000] mmc0: sdhci: Argument:  0x000fabd8 | Xfr mode: 0x123a0033
[  586.720000] mmc0: sdhci: Present:   0xf089020a | Host ctl: 0x00000022
[  586.720000] mmc0: sdhci: Power:     0x00000000 | Blk gap:  0x00000000
[  586.720000] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000001
[  586.720000] mmc0: sdhci: Timeout:   0x0000000e | Int stat: 0x00000000
[  586.720000] mmc0: sdhci: Int enab:  0x005f000b | Sig enab: 0x007f008b
[  586.720000] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000012
[  586.720000] mmc0: sdhci: Caps:      0x07d30000 | Caps_1:   0x08100810
[  586.720000] mmc0: sdhci: Cmd:       0x00000012 | Max curr: 0x00000000
[  586.720000] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x00000000
[  586.720000] mmc0: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
[  586.720000] mmc0: sdhci: Host ctl2: 0x00000000
[  586.720000] mmc0: sdhci: ============================================

 

While in some other previous cases, cmd18 completes even if with a DEBE bit set.

 

[  569.250000] c: 18  arg 000fb508
[  569.260000] IRQ status 0x00000001
[  569.260000] IRQ status 0x00400000 (DEBE bit)
[  569.260000] c: 12  arg 00000000
[  569.260000] sdhci_irq() exiting 1 (related to cmd 18)

 

Cmd17 instead, seems to always work properly.

 

I have probably to find myself where my upper layer driver fails, but I am also wondering, what could be the reason of a CMD18 timeout ? May i have some hw design issue ?

 

thanks

Regards,

Angelo

Outcomes