iMX31 and 88W8686 SDIO module

claud_yu claud_yu at yahoo.com.tw
Fri Apr 18 03:48:21 EDT 2008


Hi all ,

Several days ago, I post one message about WiFi module
with Marvell 88w8686. And the module was broken and I
change the module to Wi2Wi module. But that module
still use Marvell 88w8686. My platform is arm-based
evaluation board with Freescale iMX31. and kernel is
2.6.22. The kernel have patched by freesacle and add
sdio code like 2.6.24.

As I know the linux driver of Marvell 88w8686 have two
branch. One is libertas and other one is release by
Marvell. First I try libertas on our platform. But I
stuck at firmware loading and I don't have any idea
about that. And I try the driver from moblin project
based on Marvell GPL driver. After several day working
, the driver work right now. But the driver still have
some problem. The current can scan and associate to ap
, but performance is very awful ( TCP 700kbps , UDP
1Mbps). And associate and  query operation will make
kernel bug (BUG()) like below message.

-----------------------------------------
/mmc # iwconfig wlan0 essid linksys

BUG: scheduling while atomic: iwconfig/0x00000001/1640

[<c002bd50>] (dump_stack+0x0/0x14) from [<c0319de4>]
(schedule+0x64/0x678)

[<c0319d80>] (schedule+0x0/0x678) from [<bf00b9e8>]
(PrepareAndSendCommand+0x1744/0x1780 [8686_v9])

[<bf00a2a4>] (PrepareAndSendCommand+0x0/0x1780
[8686_v9]) from [<bf002468>]
(wlan_get_wireless_stats+0x60/0x158 [8686_v9])

[<bf002408>] (wlan_get_wireless_stats+0x0/0x158
[8686_v9]) from [<c0312a54>]
(get_wireless_stats+0x2c/0x38)

 r7:00000400 r6:4001d000 r5:c07993a0 r4:c0602000

[<c0312a28>] (get_wireless_stats+0x0/0x38) from
[<c0313910>] (wireless_seq_show+0x38/0x108)

[<c03138d8>] (wireless_seq_show+0x0/0x108) from
[<c00aee94>] (seq_read+0x230/0x388)

[<c00aec64>] (seq_read+0x0/0x388) from [<c0091ec4>]
(vfs_read+0xb4/0x144)

[<c0091e10>] (vfs_read+0x0/0x144) from [<c0092304>]
(sys_read+0x44/0x70)

 r7:00000000 r6:00000000 r5:fffffff7 r4:c741b0e0

[<c00922c0>] (sys_read+0x0/0x70) from [<c0027ea0>]
(ret_fast_syscall+0x0/0x2c)

 r7:00000003 r6:000003ff r5:00015008 r4:00015008

BUG: scheduling while atomic: iwconfig/0x00000001/1640

[<c002bd50>] (dump_stack+0x0/0x14) from [<c0319de4>]
(schedule+0x64/0x678)

[<c0319d80>] (schedule+0x0/0x678) from [<bf00b9e8>]
(PrepareAndSendCommand+0x1744/0x1780 [8686_v9])

[<bf00a2a4>] (PrepareAndSendCommand+0x0/0x1780
[8686_v9]) from [<bf0024dc>]
(wlan_get_wireless_stats+0xd4/0x158 [8686_v9])

[<bf002408>] (wlan_get_wireless_stats+0x0/0x158
[8686_v9]) from [<c0312a54>]
(get_wireless_stats+0x2c/0x38)

 r7:00000400 r6:4001d000 r5:c07993a0 r4:c0602000

[<c0312a28>] (get_wireless_stats+0x0/0x38) from
[<c0313910>] (wireless_seq_show+0x38/0x108)

[<c03138d8>] (wireless_seq_show+0x0/0x108) from
[<c00aee94>] (seq_read+0x230/0x388)

[<c00aec64>] (seq_read+0x0/0x388) from [<c0091ec4>]
(vfs_read+0xb4/0x144)

[<c0091e10>] (vfs_read+0x0/0x144) from [<c0092304>]
(sys_read+0x44/0x70)

 r7:00000000 r6:00000000 r5:fffffff7 r4:c741b0e0

[<c00922c0>] (sys_read+0x0/0x70) from [<c0027ea0>]
(ret_fast_syscall+0x0/0x2c)

 r7:00000003 r6:000003ff r5:00015008 r4:00015008

/mmc #
-----------------------------------------

And I back-port 2.6.25 libertas driver to my platform.
The helper download is ok. But the driver still failed
at frimware downloading. And I check the chip errata
of iMX31 , The SD interface have several bugs. And I
got a driver for iMX31ADS and 88w8686 from module tech
support. The driver confirm the 4bit mode have 
hardware compatible issue between iMX31 and 88w8686.
The driver only work at SD 1bit mode.

I still want to know why libertas don't work and
marvell driver work. Could anyone give me some hint
about that ?


Claud Yu





      _________________________________________________________________________________________________________
生活有問題?問大家,不如找知識 +,還可抽 MacBook Air http://ksk.search.yahoo.net/index.asp?WT.mc_id=023



More information about the libertas-dev mailing list