WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Problem with sdhci_pci driver (Linux version 3.8.13 TinyCore version 5.3)  (Read 9113 times)

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
Hello,

It seems that the driver sdhci_pci don't working very well with sd slot.
I can always disable the driver at the boot by adding to the blacklist, but I need to use it because  I have the wifi which work with sdhci_pci driver (in fact is the libertas_sdio driver which is use for an Wifi Marvell SD8686 SDIO).
I appreciate if this problem will be solved or if anyone know how to solve it.

Bellow I attache the dmesg file.

Thanks,
imaad
Best regards,
imaad

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
There's probably a module parameter in one of the sdhci modules to disable DMA. Check them with "modinfo NAME". You can then add that to the boot arguments like this: module.param=value.
The only barriers that can stop you are the ones you create yourself.

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
I can see just one parameter in sdhci but it's a debug parameter I think... another idea

Modinfo for sdhci:

filename:       kernel/drivers/mmc/host/sdhci.ko.gz
license:        GPL
author:         Pierre Ossman <pierre@ossman.eu>
description:    Secure Digital Host Controller Interface core driver
depends:        mmc_core
vermagic:       3.8.13-tinycore SMP mod_unload 486
parm:           debug_quirks2:Force certain other quirks.

Modinfo for sdhci_pci:

filename:       kernel/drivers/mmc/host/sdhci-pci.ko.gz
license:        GPL
author:         Pierre Ossman <pierre@ossman.eu>
description:    Secure Digital Host Controller Interface PCI driver
alias:          pci:v*d*sv*sd*bc08sc05i*
alias:          pci:v00001217d00008320sv*sd*bc*sc*i*
alias:          pci:v00001217d00008220sv*sd*bc*sc*i*
alias:          pci:v00008086d0000880Asv*sd*bc*sc*i*
alias:          pci:v00008086d00000824sv*sd*bc*sc*i*
alias:          pci:v00008086d00000822sv*sd*bc*sc*i*
alias:          pci:v00008086d00000820sv*sd*bc*sc*i*
alias:          pci:v00008086d00000808sv*sd*bc*sc*i*
alias:          pci:v00001106d000095D0sv*sd*bc*sc*i*
alias:          pci:v0000197Bd00002392sv*sd*bc*sc*i*
alias:          pci:v0000197Bd00002382sv*sd*bc*sc*i*
alias:          pci:v000011ABd00004101sv*sd*bc*sc*i*
alias:          pci:v00001524d00000750sv*sd*bc*sc*i*
alias:          pci:v00001524d00000550sv*sd*bc*sc*i*
alias:          pci:v00001180d0000E822sv*sd*bc*sc*i*
alias:          pci:v00001180d00000822sv*sd*bc*sc*i*
depends:        sdhci
vermagic:       3.8.13-tinycore SMP mod_unload 486

Best regards,
imaad
Best regards,
imaad

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
See http://lxr.free-electrons.com/source/include/linux/mmc/sdhci.h#L39 for the list of quirks.

For example, sdhci.debug_quirks=0x20 disables DMA.
The only barriers that can stop you are the ones you create yourself.

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
Thank you for info. I will try this.
I have just one question. Why is need to disable DMA? Why is the DMA the problem?
Best regards,
imaad

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
Either your hardware is buggy, or the driver does not support it properly. I can't tell.
The only barriers that can stop you are the ones you create yourself.

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
I just tested dhci.debug_quirks=0x20 and the problem still persists.
It's more complicate that I thought...
Best regards,
imaad

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
I have a Ubuntu 8.04.4 with kernel 2.6.24-26-generic. With this version the kernel detect correctly the mmc slot :
mmc0: SDHCI at 0xfe8ffc00 irq 20 DMA
mmc1: SDHCI at 0xfe8ff800 irq 20 DMA

It is a way(possible) to get the driver from this kernel version and to use it on TinyCore kernel. Even if the ubuntu version detect correctly all my drivers I prefer to use TinyCore because I think TinyCore project it's a new concept and bring something different compared to other systems.

Best regards,
imaad
Best regards,
imaad

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
I don't see where you have identified your hardware.  lspci -nn on my Dell 640m shows:
02:01.1 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 19)

My sd card appears in /mnt as mmcblk0

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
In TinyCore the command lspci is not found. It's there an extension to install ?
However my sd slot is not recognized and at boot I see:

mmc0: Unknown controller version (17). You may experience problems.
sdhci-pci 0000:01:06.0: Will use DMA mode even though HW doesn't fully claim to support it.
sdhci-pci 0000:01:06.0: Will use DMA mode even though HW doesn't fully claim to support it.
microcode: CPU0 sig=0x6d8, pf=0x8, revision=0x0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc0: SDHCI controller on PCI [0000:01:06.0] using DMA
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc1: Unknown controller version (17). You may experience problems.
sdhci-pci 0000:01:06.0: Will use DMA mode even though HW doesn't fully claim to support it.
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.
mmc0: Reset 0x2 never completed.

Instead it's correctly recognized on ubunt 8.04.4 avec kernel 2.6.24
Best regards,
imaad

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
Apps->Provides->lspci shows that it is in pci-utils.tcz.

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
OK I fund the extension. It is strange the SD Host controller is recognized.
"01:06.0 SD Host controller: C-guys, Inc. CG200 Dual SD/SDIO Host contoller device (rev 09)"

When I use "modprobe sdhci" in dmesg I see continually
 
mmc0: Reset 0x2 never completed.
mmc0: Reset 0x4 never completed.

The same thing for mmc1.

What that mean?
Way in ubuntu I see

mmc0: SDHCI at 0xfe8ffc00 irq 20 DMA
mmc1: SDHCI at 0xfe8ff800 irq 20 DMA

What generate this proable? It's the sdhci driver or sdhci-pci driver ?
Best regards,
imaad

Offline imaad

  • Jr. Member
  • **
  • Posts: 70
  • stii ... nu intodeauna stii
Just for info.
I found that mmc slot is correctly detected in TinuCore 4 with kernel 3.0.3-tinycore.
However I can't use it because in TinyCore 4 I don't find firmware-livertas  for Marvell SDIO Wifi.
I think that the sdio driver was changed and it's not compatible with my mmc host controller.
Best regards,
imaad

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11044
The firmware extensions are just data, they don't require compilation. That means you can use the firmware-libertas.tcz file from TC5 on TC4.

However, firmware-libertas.tcz is there on 3.x, 4.x and 5.x?
The only barriers that can stop you are the ones you create yourself.