SD8686 SDIO on the beagleboard (OMAP3540)
Dan Williams
dcbw at redhat.com
Wed Oct 13 12:39:12 EDT 2010
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