freescale mx25 + libertas + 8688

zamek zamek at vili.pmmf.hu
Fri Apr 29 15:17:11 EDT 2011


Hi All,

I have a Freescale iMX25 based (tx25) board with a Marvell 8688 wireless 
module on sdio bus.
My kernel is a rel_imx_2.6.35_11.03.00 from freescale git repository.

The wireless chip is wired on sdio bus, not plugged. On end of 
sdhci_probe_slot() function I call the tasklet_schedule(&host->card_tasklet)
to force detecting card.

It seems to be good, mmc0 detected well.

After it, I would like to load libertas module:

modprobe libertas libertas_debug=0xffffffff
modprobe libertas_sdio

It seems to be, it couldn't loads helper firmware.
It can detect the card well:

[   61.639113] libertas sdio: class = 0x0, vendor = 0x2DF, device = 
0x9104, model = 0x10, ioport = 0x10000
but the firmware download returns -2.

the wanted firmware name is sd8688_helper.bin, which is in 
/lib/firmware/libertas directory.

What should be the mistake?


here is the complete log:

libertas enter: lbs_init_module()
[   55.190377] libertas leave: lbs_init_module()
[   61.484521] libertas enter: if_sdio_init_module()
[   61.484565] libertas_sdio: Libertas SDIO driver
[   61.489116] libertas_sdio: Copyright Pierre Ossman
[   61.505832] mmc0: starting CMD52 arg 80022000 flags 00000195
[   61.505880] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.505928] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.505985] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.506014] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.511564] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.517125] mmc0: starting CMD52 arg 80022202 flags 00000195
[   61.517174] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.517221] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.517276] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.517307] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.522866] mmc0: req done (CMD52): 0: 00001002 00000000 00000000 
00000000
[   61.529049] libertas enter: if_sdio_probe()
[   61.533092] SDIO: Enabling device mmc0:0001:1...
[   61.533147] mmc0: starting CMD52 arg 00000400 flags 00000195
[   61.533184] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.533233] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.533290] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.533317] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.538742] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.545101] mmc0: starting CMD52 arg 80000402 flags 00000195
[   61.545152] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.545200] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.545254] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.545282] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.550700] mmc0: req done (CMD52): 0: 00001002 00000000 00000000 
00000000
[   61.556806] mmc0: starting CMD52 arg 00000600 flags 00000195
[   61.556856] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.556905] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.556957] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.556985] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.562512] mmc0: req done (CMD52): 0: 00001002 00000000 00000000 
00000000
[   61.568896] SDIO: Enabled device mmc0:0001:1
[   61.568938] SDIO: Enabling IRQ for mmc0:0001:1...
[   61.568980] mmc0: starting CMD52 arg 00000800 flags 00000195
[   61.569017] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.569064] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.569118] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.569146] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.574675] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.580655] mmc0: starting CMD52 arg 80000803 flags 00000195
[   61.580704] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.580752] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.580807] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.580835] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.586358] mmc0: req done (CMD52): 0: 00001003 00000000 00000000 
00000000
[   61.594277] mmc0: starting CMD52 arg 10000000 flags 00000195
[   61.594325] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.594373] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.594429] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.594457] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.599878] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.603589] mmc0: IRQ thread started (poll period = 2147483647 jiffies)
[   61.608323] mmc0: starting CMD52 arg 10000200 flags 00000195
[   61.608374] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.608423] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.608476] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.608504] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.614023] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.619995] mmc0: starting CMD52 arg 10000400 flags 00000195
[   61.620045] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.620092] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.620146] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.620174] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.625699] mmc0: req done (CMD52): 0: 00001001 00000000 00000000 
00000000
[   61.631864] mmc0: starting CMD52 arg 00000a00 flags 00000195
[   61.631914] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.631964] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.632020] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.632050] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.637460] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.639113] libertas sdio: class = 0x0, vendor = 0x2DF, device = 
0x9104, model = 0x10, ioport = 0x10000
[   61.639163] libertas enter: if_sdio_prog_firmware()
[   61.639212] mmc0: starting CMD52 arg 10008000 flags 00000195
[   61.639250] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.639298] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.639353] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.639381] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.644908] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.650892] mmc0: starting CMD52 arg 10008200 flags 00000195
[   61.650943] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.650992] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.651045] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.651074] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.656597] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   61.663814] libertas sdio: firmware status = 0x0
[   61.663857] libertas enter: if_sdio_prog_helper()
[   61.709732] libertas: can't load helper firmware
[   61.727630] libertas: failed to load helper firmware
[   61.746316] libertas leave: if_sdio_prog_helper(), ret -2
[   61.746360] libertas leave: if_sdio_prog_firmware(), ret -2
[   61.746398] SDIO: Disabling IRQ for mmc0:0001:1...
[   61.746473] mmc0: IRQ thread exiting with code 0
[   61.746641] mmc0: starting CMD52 arg 00000800 flags 00000195
[   61.746683] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   61.746731] mxsdhci [sdhci_send_command()]: Complete sending cmd, 
transfer mode would be 0x341a0000.
[   61.746787] mxsdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
[   61.746815] drivers/mmc/host/mx_sdhci.c: irq command irq
[   61.752341] mmc0: req done (CMD52): 0: 00001003 00000000 00000000 
00000000
[   61.772197] mmc0: starting CMD52 arg 80000800 flags 00000195

-- 
  thx,
----------------------------------
Zoltan Zidarics programmer
PTE-PMMFK H-7621 Pecs, Boszorkany u. 2. Hungary
E-Mail: zamek at vili.pmmf.hu
----------------------------------
       




More information about the libertas-dev mailing list