freescale mx25 + libertas + 8688
zamek
zamek at vili.pmmf.hu
Sat Apr 30 04:19:06 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