Tiny Core Linux
Tiny Core Base => TCB Bugs => Topic started by: imaad on April 22, 2014, 05:33:53 AM
-
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
-
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.
-
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
-
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.
-
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?
-
Either your hardware is buggy, or the driver does not support it properly. I can't tell.
-
I just tested dhci.debug_quirks=0x20 and the problem still persists.
It's more complicate that I thought...
-
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
-
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
-
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
-
Apps->Provides->lspci shows that it is in pci-utils.tcz.
-
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 ?
-
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.
-
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?