esdhc, timeout some time after cmd 18

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

esdhc, timeout some time after cmd 18

Jump to solution
866 Views
angelo_d
Senior Contributor I

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

0 Kudos
1 Solution
714 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

From the latest MCF54418 chip errata, there with below record:

pastedImage_1.png

Please refer and apply Workaround with CMD18 command.

Wish it helps.


Have a great day,
Mike

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

2 Replies
715 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

From the latest MCF54418 chip errata, there with below record:

pastedImage_1.png

Please refer and apply Workaround with CMD18 command.

Wish it helps.


Have a great day,
Mike

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

714 Views
angelo_d
Senior Contributor I

Hi Mike,

speciaL thanks, it was very helpful solved all.

Best regards.

Angelo

0 Kudos