freescale mx25 + libertas + 8688

zamek42 zamek42 at gmail.com
Sat Apr 30 04:08:36 EDT 2011


Hi All,

I tried to install uap module based on 
http://juanisan.homeip.net/guruplug/JJO-Marvell-Libertas-8688-AP-FULLPATCH-supports-up-to-linux-2.6.38.patch
It fails too, when it started to download the first 512 bytes of 
firmware helper.

Maybe I need to reset the chip, because it is a wired fix, not a 
pluggable device.
Here is the log:

[   30.364104] mmc0: new high speed SDIO card at address 0001
[   30.404080] mmc0: starting CMD7 arg 00010000 flags 00000015
[   30.404129] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x7 is 
starting...
[   30.404275] mmc0: req done (CMD7): 0: 00001e00 00000000 00000000 00000000
[   30.541459] mmc0: starting CMD52 arg 80022000 flags 00000195
[   30.541509] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.541670] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.548750] mmc0: starting CMD52 arg 80022202 flags 00000195
[   30.548800] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.548954] mmc0: req done (CMD52): 0: 00001002 00000000 00000000 
00000000
[   30.549041] Enter: uap_probe, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:524
[   30.549084] uap_probe: vendor=0x02DF device=0x9104 class=0 function=1
[   30.555561] Enter: uap_add_card, 
drivers/net/wireless/libertas_uap/uap_main.c:1601
[   30.555684] Enter: uap_init_sw, 
drivers/net/wireless/libertas_uap/uap_main.c:399
[   30.555778] Leave: uap_init_sw, 
drivers/net/wireless/libertas_uap/uap_main.c:458
[   30.555810] Starting kthread...
[   30.560968] Enter: uap_service_main_thread, 
drivers/net/wireless/libertas_uap/uap_main.c:683
[   30.561019] Main: Thread sleeping...
[   30.561072] Enter: sbi_register_dev, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:802
[   30.561116] SDIO: Enabling device mmc0:0001:1...
[   30.561154] mmc0: starting CMD52 arg 00000400 flags 00000195
[   30.561190] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.561316] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.562931] mmc0: starting CMD52 arg 80000402 flags 00000195
[   30.562981] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.563117] mmc0: req done (CMD52): 0: 00001002 00000000 00000000 
00000000
[   30.564732] mmc0: starting CMD52 arg 00000600 flags 00000195
[   30.564782] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.564920] mmc0: req done (CMD52): 0: 00001002 00000000 00000000 
00000000
[   30.564993] SDIO: Enabled device mmc0:0001:1
[   30.565023] SDIO: Enabling IRQ for mmc0:0001:1...
[   30.565058] mmc0: starting CMD52 arg 00000800 flags 00000195
[   30.565092] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.565280] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.565426] mmc0: starting CMD52 arg 80000803 flags 00000195
[   30.565476] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.565625] mmc0: req done (CMD52): 0: 00001003 00000000 00000000 
00000000
[   30.569168] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.569231] mmc0: starting CMD52 arg 10000000 flags 00000195
[   30.569268] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.569411] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.569494] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x0 dat=0x0
[   30.569529] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.569566] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.569608] mmc0: starting CMD52 arg 10000200 flags 00000195
[   30.569639] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.569828] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.570694] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x1 dat=0x0
[   30.570744] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.570784] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.570831] mmc0: starting CMD52 arg 10000400 flags 00000195
[   30.570869] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.571019] mmc0: req done (CMD52): 0: 00001001 00000000 00000000 
00000000
[   30.571101] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x2 dat=0x1
[   30.571136] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.571170] SDIO FUNC #1 IO port: 0x10000
[   30.571205] mmc0: starting CMD52 arg 80022000 flags 00000195
[   30.571238] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.571347] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.571421] mmc0: starting CMD52 arg 80022201 flags 00000195
[   30.571458] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.571574] mmc0: req done (CMD52): 0: 00001001 00000000 00000000 
00000000
[   30.571658] Leave: sbi_register_dev, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:879
[   30.571701] Enter: uap_init_fw, 
drivers/net/wireless/libertas_uap/uap_main.c:570
[   30.571738] Enter: sbi_disable_host_int, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:726
[   30.571781] Enter: disable_host_int_mask, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:425
[   30.571817] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.571858] mmc0: starting CMD52 arg 10000800 flags 00000195
[   30.571890] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.572010] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.572126] mmc0: IRQ thread started (poll period = 2147483647 jiffies)
[   30.572194] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x4 dat=0x0
[   30.572229] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.572265] Enter: sbi_write_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:116
[   30.572301] sbi_write_ioreg() priv=c163a6e0 func=1 reg=0x4 dat=0x0
[   30.572339] mmc0: starting CMD52 arg 90000800 flags 00000195
[   30.572371] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.572563] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.572701] Leave: sbi_write_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:134
[   30.572754] Leave: disable_host_int_mask, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:444
[   30.572856] mmc0: starting CMD52 arg 00000a00 flags 00000195
[   30.572897] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.573034] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.573142] Leave: sbi_disable_host_int, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:732
[   30.573188] Enter: sbi_check_fw_status, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:1357
[   30.573232] Enter: sd_read_firmware_status, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:197
[   30.573269] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.573269] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.573311] mmc0: starting CMD52 arg 10008000 flags 00000195
[   30.573343] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.573534] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.574390] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x40 dat=0x0
[   30.574438] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.574476] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.574521] mmc0: starting CMD52 arg 10008200 flags 00000195
[   30.574558] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.574694] mmc0: req done (CMD52): 0: 00001000 00000000 00000000 
00000000
[   30.576314] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x41 dat=0x0
[   30.576362] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.576401] Leave: sd_read_firmware_status, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:213
[   30.586540] Leave: sbi_check_fw_status, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:1383
[   30.586584] drivers/net/wireless/libertas_uap/uap_main.c: 
helper_name:mrvl/helper_sd.bin
[   30.732882] Enter: sbi_prog_helper, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:1034
[   30.732931] Downloading helper image (2616 bytes), block size 256 bytes
[   30.732985] Enter: mv_sdio_poll_card_status, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:230
[   30.733025] Enter: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:80
[   30.733070] mmc0: starting CMD52 arg 10004000 flags 00000195
[   30.733107] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x34 
is starting...
[   30.737837] mmc0: req done (CMD52): 0: 0000100d 00000000 00000000 
00000000
[   30.738004] sbi_read_ioreg() priv=c163a6e0 func=1 reg=0x20 dat=0xd
[   30.738052] Leave: sbi_read_ioreg, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:98
[   30.738091] Leave: mv_sdio_poll_card_status, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:236
[   30.738133] .
[   30.738172] mmc0: starting CMD53 arg 92000000 flags 000001b5
[   30.738209] mmc0:     blksz 512 blocks 1 flags 00000100 tsac 1000 ms 
nsac 0
[   30.738248] mxsdhci [sdhci_send_command()]: sdhci_send_command 0x35 
is starting...
[   30.738297] drivers/mmc/host/mx_sdhci.c: prepare data: 
timeout_ns:1000000000, timeout_clks:0, clock:33250000
[   30.748162] mxsdhci [sdhci_prepare_data()]: <4>mmc0: Too large 
timeout requested! 15
[   30.748195] mxsdhci [sdhci_prepare_data()]: Reverting to DMA in large 
data transfer.
[   30.748237] mxsdhci [sdhci_prepare_data()]: Configure the sg DMA, 
DMA_TO_DEVICE, len is 0x200, count is 1
[   30.748566] mmc0: req done (CMD53): 0: 00002000 00000000 00000000 
00000000
[   30.748610] mmc0:     512 bytes transferred: -84
[   30.764244] IO error during helper download @ 0
[   30.764305] Leave: sbi_prog_helper, 
drivers/net/wireless/libertas_uap/uap_sdio_mmc.c:1147
[   30.764340] Bootloader in invalid state! Helper download failed!

>
> 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.
>
-- 
thx
Zoltan (Zamek) Zidarics
programmer
email:zamek42 at gmail.com
skype:zamek_z




More information about the libertas-dev mailing list