SD8686 SDIO on the beagleboard (OMAP3540)
Rowan Carter
rwncarter at gmail.com
Wed Oct 13 12:55:31 EDT 2010
Hi,
Its the MMC/SD/SDIO Controller embedded in TI's OMAP3540, the driver
being used is the hsmmc.
I have since found that the module loads when the slot is configured
in 1 wire mode.
Thanks
Rowan Carter
On Wed, Oct 13, 2010 at 6:39 PM, Dan Williams <dcbw at redhat.com> wrote:
> On Wed, 2010-10-13 at 03:45 +0200, Rowan Carter wrote:
>> Hi
>>
>> Im trying to get the libertas driver working for the sd8686 SDIO
>> module on MMC2 of the beagleboard. It fails with error -110 ( mmc1:
>> req done (CMD52): -110: 00000000 00000000 00000000 00000000 )
>>
>> What could be causing this? I'm quite new to kernel/driver programming
>> so excuse me if my problem is silly.
>
> Any idea what SD host controller is used here, and what it's limitations
> are? Firmware needs a block size of 32 and only supports single
> transfers. Apparently the hardware has "almost no CMD53 support" so
> this part could be interesting:
>
> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542846] mmc1: starting CMD53 arg 92000040 flags 000001b5
> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542877] mmc1: blksz 64 blocks 1 flags 00000100 tsac 1000 ms nsac 0
> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542968] mmc1: req done (CMD53): 0: 00002000 00000000 00000000 00000000
>
> Dan
>
>> Kernel: 2.6.35.5
>> Firmware: 9.70.3.p24
>>
>> Below is the log with MMC debug enabled:
>>
>>
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.506103] libertas_sdio:
>> Copyright Pierre Ossman
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.507965] mmci-omap-hs
>> mmci-omap-hs.1: mmc_fclk: enabled
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.507965] mmci-omap-hs
>> mmci-omap-hs.1: context was not lost
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.507995] mmc1: starting
>> CMD52 arg 80022000 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508026] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x80022000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508056] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508056] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508117] mmc1: starting
>> CMD52 arg 80022201 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508117] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x80022201
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508148] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508148] mmc1: req done
>> (CMD52): 0: 00001001 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508636] SDIO: Enabling
>> device mmc1:0001:1...
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508636] mmc1: starting
>> CMD52 arg 00000400 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508666] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000400
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508666] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508697] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508728] mmc1: starting
>> CMD52 arg 80000402 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508758] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x80000402
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508758] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508789] mmc1: req done
>> (CMD52): 0: 00001002 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508819] mmc1: starting
>> CMD52 arg 00000600 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508819] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000600
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508850] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508850] mmc1: req done
>> (CMD52): 0: 00001002 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508880] SDIO: Enabled
>> device mmc1:0001:1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508880] SDIO: Enabling IRQ
>> for mmc1:0001:1...
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508911] mmc1: starting
>> CMD52 arg 00000800 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508911] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000800
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508941] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508941] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.508972] mmc1: starting
>> CMD52 arg 80000803 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509002] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x80000803
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509002] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509033] mmc1: req done
>> (CMD52): 0: 00001003 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509155] mmc1: starting
>> CMD52 arg 10000000 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509185] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509216] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509216] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509246] mmc1: starting
>> CMD52 arg 10000200 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509277] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10000200
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509277] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509307] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509338] mmc1: starting
>> CMD52 arg 10000400 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509338] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10000400
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509368] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509368] mmc1: req done
>> (CMD52): 0: 00001001 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509399] mmc1: starting
>> CMD52 arg 10006800 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509429] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10006800
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509460] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509460] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509490] mmc1: starting
>> CMD52 arg 10006a00 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509490] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10006a00
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509521] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.509552] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.510955] mmc1: IRQ thread
>> started (poll period = 2 jiffies)
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.510986] mmc1: starting
>> CMD52 arg 00000a00 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.511016] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000a00
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.511047] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.511077] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.522155] mmc1: starting
>> CMD52 arg 00000a00 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.522155] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000a00
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.522216] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.522216] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.537689] mmc1: starting
>> CMD52 arg 00000a00 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.537719] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000a00
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.537750] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.537780] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540557] mmc1: starting
>> CMD52 arg 80022020 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540588] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x80022020
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540618] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540649] mmc1: req done
>> (CMD52): 0: 00001020 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540679] mmc1: starting
>> CMD52 arg 80022200 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540710] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x80022200
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540740] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540740] mmc1: req done
>> (CMD52): 0: 00001000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540802] mmc1: starting
>> CMD52 arg 10004000 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540802] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10004000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540832] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.540832] mmc1: req done
>> (CMD52): 0: 0000100d 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542846] mmc1: starting
>> CMD53 arg 92000040 flags 000001b5
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542877] mmc1: blksz 64
>> blocks 1 flags 00000100 tsac 1000 ms nsac 0
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542907] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD53, argument 0x92000040
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542938] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 3
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542968] mmc1: req done
>> (CMD53): 0: 00002000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.542968] mmc1: 64 bytes
>> transferred: 0
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.546203] mmc1: starting
>> CMD52 arg 10004000 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.546234] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x10004000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.546264] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 18000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.546264] mmci-omap-hs
>> mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.546295] mmc1: req done
>> (CMD52): -110: 00000000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.546356] libertas: failed to
>> load helper firmware
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.554534] mmc1: starting
>> CMD52 arg 00000a00 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.554565] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000a00
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.554595] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 18000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.554626] mmci-omap-hs
>> mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.554626] mmc1: req done
>> (CMD52): -110: 00000000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.554656] mmc1:0001: error
>> -110 reading SDIO_CCCR_INTx
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.568847] SDIO: Disabling IRQ
>> for mmc1:0001:1...
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.568908] mmc1: IRQ thread
>> exiting with code -110
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.569000] mmc1: starting
>> CMD52 arg 00000800 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.569030] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000800
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.569061] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 18000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.569061] mmci-omap-hs
>> mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.569091] mmc1: req done
>> (CMD52): -110: 00000000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.570892] SDIO: Disabling
>> device mmc1:0001:1...
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.570922] mmc1: starting
>> CMD52 arg 00000400 flags 00000195
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.570922] mmci-omap-hs
>> mmci-omap-hs.1: mmc1: CMD52, argument 0x00000400
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.570953] mmci-omap-hs
>> mmci-omap-hs.1: IRQ Status is 18000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.570983] mmci-omap-hs
>> mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.570983] mmc1: req done
>> (CMD52): -110: 00000000 00000000 00000000 00000000
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.571350] SDIO: Failed to
>> disable device mmc1:0001:1
>> Oct 13 02:58:56 BeagleBoard kernel: [ 912.571472] libertas_sdio:
>> probe of mmc1:0001:1 failed with error -110
>>
>> Thanks
>> Rowan
>>
>> _______________________________________________
>> 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