Skip to contentSkip to conversation

SDHC ADMA Problem

DISCUSSION Ricoh 2 participants 3 messages Aug 23, 2010 – Aug 24, 2010 MMC, SD and SDIO

lore
Share & tools
lore

Ricoh

author
#0 lore raw

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??

#1 lore raw
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/  |
author
#2 lore raw
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