Problems with SD8686 SDIO on HTC Shift

Sven Barth svenmauren at vr-web.de
Sat Jan 24 15:31:10 EST 2009


Hello Dan!

Thanks again for your answer.

Do you know where or how I could find out what workarounds my controller 
needs to work well? And what do I need to rebuild the mmc/sdhci modules? 
Are they provided in a extra package like compat-wireless or do I need 
the source of my kernel release? Can I only build the needed modules or 
do I need to build the hole kernel?

Hmm... just a thought: According to the page I mentioned in my first 
mail the wifi did work in Ubuntu 8.04 which used kernel 2.6.24-16 till 
19 (again I used a wrong number in my first mail ^^). So the SDIO module 
had to work, too. I will dig around in the source code of the module (I 
downloaded the source from marvell) to find some useful information 
about the SDIO controller. (So I think I answered my first question by 
myself :) )


Regards,
Sven

Dan Williams schrieb:
> On Sat, 2009-01-24 at 12:53 +0100, Sven Barth wrote:
>   
>> Hello Dan!
>>
>> Thanks for your answer.
>>
>> Yes, I did indeed mean 2008. ^^
>>
>> The SDIO Controller seems to be a no-name one (at least if I found the 
>> right one). I used "lspci -vvv"  and the output is attached.
>> I also found some output about the SDIO controller in dmesg (see 
>> attached file). Might the problems reported there be the source of the 
>> timeout problems?
>>     
>
> Certainly could be.  The controller has historically been the major
> source of problems for people with the libertas driver so far.  The
> kernel's SDIO stack is fairly clean and doesn't try to hack around bad
> hardware a lot since it wasn't known quite how bad the hardware was at
> the time it was written.  Some controllers actually do need PIO mode
> instead of DMA mode, others can't actually do 4-bit transfers but claim
> to be able to do so (which means they aren't actually spec compliant I
> think), that sort of thing.  You may have to work around some of these
> issues in the SDIO stack for your particular controller.
>
>   
>> I also removed the part about TX_POWER from main.c, but now the module 
>> hangs with CMD_MAC_CONTROL (0x0028) (another clue, that the source of 
>> the problems is the SDIO controller?)
>>     
>
> Yeah; it appears that the only command that actually works is
> CMD_GET_HW_SPEC, all subsequent commands fail.  I know that the version
> 8 firmware (which you're using as seen below) works fine with
> CMD_MAC_CONTROL on Ricoh controllers, and others have had success with
> it on other controllers too.  So I think at the moment, the controller
> is suspect.
>
> Pierre: any thoughts on the stack messages and what might be going on
> here?
>
> Dan
>
>   
>> Thanks for your help.
>>
>> Regards,
>> Sven
>> plain text document attachment (dmesg-htc-shift-2)
>> // I think this is about the SDIO Controller
>> sdhci: Secure Digital Host Controller Interface driver
>> sdhci: Copyright(c) Pierre Ossman
>> sdhci-pci 0000:01:06.0: SDHCI controller found [1947:4743] (rev 9)
>> sdhci-pci 0000:01:06.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
>> sdhci-pci 0000:01:06.0: Invalid iomem size. You may experience problems.
>> input: PC Speaker as /class/input/input7
>> 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.
>> mmc0: SDHCI controller on PCI [0000:01:06.0] using DMA
>> sdhci-pci 0000:01:06.0: Invalid iomem size. You may experience problems.
>> 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.
>> mmc1: SDHCI controller on PCI [0000:01:06.0] using DMA
>>
>> // without TX_POWER cmd
>> libertas_sdio: Libertas SDIO driver
>> libertas_sdio: Copyright Pierre Ossman
>> libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
>> libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
>> libertas: f3cbdcce, fw 8.70.8p1, cap 0x00000303
>> libertas: command 0x0028 timed out
>> libertas: requeueing command 0x0028 due to timeout (#1)
>> libertas: command 0x0028 timed out
>> libertas: requeueing command 0x0028 due to timeout (#2)
>> libertas: command 0x0028 timed out
>> libertas: requeueing command 0x0028 due to timeout (#3)
>> mmc1: Timeout waiting for hardware interrupt.
>> sdhci: ============== REGISTER DUMP ==============
>> sdhci: Sys addr: 0x33c2f488 | Version:  0x00000111
>> sdhci: Blk size: 0x00007010 | Blk cnt:  0x00000001
>> sdhci: Argument: 0x92000010 | Trn mode: 0x00000003
>> sdhci: Present:  0x01f70506 | Host ctl: 0x00000003
>> sdhci: Power:    0x0000000f | Blk gap:  0x00000000
>> sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
>> sdhci: Timeout:  0x0000000c | Int stat: 0x00000000
>> sdhci: Int enab: 0x00ff01fb | Sig enab: 0x00ff01fb
>> sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
>> sdhci: Caps:     0x01e011a1 | Max curr: 0x00000080
>> sdhci: ===========================================
>> libertas: command 0x0028 timed out
>> libertas: Excessive timeouts submitting command 0x0028
>> // modprobe libertas_sdio keeps hanging after "excessive timeouts" till I press Ctrl+c
>> // this comes after I canceled modprobe
>> libertas: eth0: Marvell WLAN 802.11 adapter
>> plain text document attachment (lspci-sd-host)
>> 01:06.0 SD Host controller: Device 1947:4743 (rev 09)
>> 	Subsystem: Device 2211:4433
>> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
>> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>> 	Latency: 64 (250ns min, 3000ns max), Cache Line Size: 32 bytes
>> 	Interrupt: pin A routed to IRQ 20
>> 	Region 0: Memory at fe8ffc00 (32-bit, non-prefetchable) [size=512]
>> 	Region 1: Memory at fe8ff800 (32-bit, non-prefetchable) [size=512]
>> 	Capabilities: [80] #00 [0000]
>> 	Kernel driver in use: sdhci-pci
>> 	Kernel modules: sdhci-pci
>>
>> _______________________________________________
>> libertas-dev mailing list
>> libertas-dev at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/libertas-dev
>>     
>
>
>   




More information about the libertas-dev mailing list