SDHC ADMA Problem
For the ADMA enabled SD Host Controller, SDHCI driver is not working fine. sdhci device gets an error "mmc0: unexpected interrupt" when an sdhc card is inserted.
This unexpected interrupt is the result of ADMA error. Refer the following dmesg informaion for more details.
mmc0: Unexpected interrupt 0x02000000.
sdhci: ============== REGISTER DUMP ==============
sdhci: Sys addr: 0x00000000 | Version: 0x00000401
sdhci: Blk size: 0x00007008 | Blk cnt: 0x00000001
sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
sdhci: Present: 0x01f70202 | Host ctl: 0x00000011
sdhci: Power: 0x0000000f | Blk gap: 0x00000000
sdhci: Wake-up: 0x00000000 | Clock: 0x00004007
sdhci: Timeout: 0x0000000a | Int stat: 0x02008008
sdhci: Int enab: 0x02ff00cb | Sig enab: 0x02ff00cb
sdhci: AC12 err: 0x00000000 | Slot int: 0x00000001
sdhci: Caps: 0x21e832b2 | Max curr: 0x00000040
sdhci: ADMA Err: 0x00000001 | ADMA Ptr: 0x020003b4
sdhci: ===========================================
Is there any updated information regarding to this issue??
Quoted 22 lines · Ricoh
For the ADMA enabled SD Host Controller, SDHCI driver is not working fine. sdhci device gets an error "mmc0: unexpected interrupt" when an sdhc card is inserted.
This unexpected interrupt is the result of ADMA error. Refer the following dmesg informaion for more details.
mmc0: Unexpected interrupt
0x02000000.
sdhci: ============== REGISTER DUMP ==============
sdhci: Sys addr:0x00000000| Version:0x00000401
sdhci: Blk size:0x00007008| Blk cnt:0x00000001
sdhci: Argument:0x00000000| Trn mode:0x00000013
sdhci: Present:0x01f70202| Host ctl:0x00000011
sdhci: Power:0x0000000f| Blk gap:0x00000000
sdhci: Wake-up:0x00000000| Clock:0x00004007
sdhci: Timeout:0x0000000a| Int stat:0x02008008
sdhci: Int enab:0x02ff00cb| Sig enab:0x02ff00cb
sdhci: AC12 err:0x00000000| Slot int:0x00000001
sdhci: Caps:0x21e832b2| Max curr:0x00000040
sdhci: ADMA Err:0x00000001| ADMA Ptr:0x020003b4
sdhci: ===========================================
Quoted 1 line
Is there any updated information regarding to this issue??
We would need to know which kernel version you are using (it should be as new as possible) and which SDHC controller.
Kind regards,
Wolfram
Signature · 2 lines
Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
Quoted 4 lines · Wolfram Sang <w.sang <at> pengutronix.de> writes:
Quoted 2 lines · Ricoh
For the ADMA enabled SD Host Controller, SDHCI driver is not working fine. sdhci device gets an error "mmc0: unexpected interrupt" when an sdhc card
is
Quoted 20 lines
Quoted 20 lines
inserted.
This unexpected interrupt is the result of ADMA error. Refer the following dmesg informaion for more details.
mmc0: Unexpected interrupt
0x02000000.
sdhci: ============== REGISTER DUMP ==============
sdhci: Sys addr:0x00000000| Version:0x00000401
sdhci: Blk size:0x00007008| Blk cnt:0x00000001
sdhci: Argument:0x00000000| Trn mode:0x00000013
sdhci: Present:0x01f70202| Host ctl:0x00000011
sdhci: Power:0x0000000f| Blk gap:0x00000000
sdhci: Wake-up:0x00000000| Clock:0x00004007
sdhci: Timeout:0x0000000a| Int stat:0x02008008
sdhci: Int enab:0x02ff00cb| Sig enab:0x02ff00cb
sdhci: AC12 err:0x00000000| Slot int:0x00000001
sdhci: Caps:0x21e832b2| Max curr:0x00000040
sdhci: ADMA Err:0x00000001| ADMA Ptr:0x020003b4
sdhci: ===========================================
Quoted 9 lines
Quoted 1 line
Is there any updated information regarding to this issue??
We would need to know which kernel version you are using (it should be as new as possible) and which SDHC controller.
Kind regards,
Wolfram
Hi Wolfram
Thanks for considering it.
The Kernel version 2.6.32
Controller is: Ricoh's SD host controller e822
To reproduce this issue, You need to make sure that the device is using ADMA for data transfer. You can confirm this by looking at the dmesg when the driver is loaded.
If ADMA is used, dmesg should have a message like the following one "SDHCI controller on ..... using ADMA"
Actually the driver looks at the PCI configuration space of the device that is set by the BIOS and if it do not find the proper settings for the ADMA, then it use simple DMA or PIO method which are going well.
Rajesh