libertas (sd8385/8686) and iMX51
William To
meinreflection at yahoo.com
Thu May 27 21:32:45 EDT 2010
Dear All,
I am porting WiFi support on Android to the iMX51 platform, and my choice of device is the SD8386 and SD8686 SDIO cards connected to the mmc/sd controller (on MMC1 channel). The libertas driver I use for this porting is the libertas driver with the supplied kernel firmware sd8385_helper.bin and sd8385.bin for the SD8385, and vendor-supplied firmware for SD8686. The firmware for SD8686 works for an ARM9 platform previously.
The problem I face now is whenever the driver loads the helper and main firmware, the kernel panics after displaying messages stating the MAC address, and other information. The failure dump is as follows:
# insmod /system/lib/modules/libertas.ko
# insmod /system/lib/modules/libertas_sdio.ko
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
Build at May 27 2010 18:43:47
libertas_sdio mmc1:0001:1: firmware: requesting sd8385_helper.bin
init: untracked pid 2206 exited
libertas_sdio mmc1:0001:1: firmware: requesting sd8385.bin
init: untracked pid 2210 exited
libertas: command 0x0003 timed out
libertas: requeueing command 0x0003 due to timeout (#1)
libertas: Received result 0 to command 3 after 1 retries
libertas: 00:12:cf:2b:98:72, fw 5.0.11p0, cap 0x00000303
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 817 [#1] PREEMPT
Modules linked in: libertas_sdio(+) libertas gpu_z430(P)
CPU: 0 Tainted: P (2.6.28-00580-g87cd054 #20)
PC is at if_sdio_interrupt+0x434/0x950 [libertas_sdio]
LR is at schedule+0x298/0x308
pc : [<bf04e5e0>] lr : [<c0357928>] psr: 20000093
sp : dab75f58 ip : 00000010 fp : dab75f8c
r10: 00000000 r9 : 7fffffff r8 : dab8001c
r7 : 0000000c r6 : daba0380 r5 : 80000013 r4 : 00000000
r3 : 00000000 r2 : daba0380 r1 : 00001d54 r0 : 00000001
Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c5387d Table: aa2dc018 DAC: 00000017
Process ksdioirqd/mmc1 (pid: 2205, stack limit = 0xdab742e0)
Stack: (0xdab75f58 to 0xdab76000)
5f40: 00000000 00000000
5f60: 00000000 00000000 00000000 00000000 da21dc00 da10e000 da10e000 00000001
5f80: dab75fd4 dab75f90 c027965c bf04e1b8 00000000 dab75fa7 00000001 dab74000
5fa0: 00000001 02b75fb0 c0357928 dab74000 da21dc00 c0279564 00000000 00000000
5fc0: 00000000 00000000 dab75ff4 dab75fd8 c0066fbc c0279570 00000000 00000000
5fe0: 00000000 00000000 00000000 dab75ff8 c00541f8 c0066f6c 00001000 ffffefff
Backtrace:
[<bf04e1ac>] (if_sdio_interrupt+0x0/0x950 [libertas_sdio]) from [<c027965c>] (sdio_irq_thread+0xf8/0x224)
r8:00000001 r7:da10e000 r6:da10e000 r5:da21dc00 r4:00000000
[<c0279564>] (sdio_irq_thread+0x0/0x224) from [<c0066fbc>] (kthread+0x5c/0x94)
[<c0066f60>] (kthread+0x0/0x94) from [<c00541f8>] (do_exit+0x0/0x7a4)
r6:00000000 r5:00000000 r4:00000000
Code: e7923001 e3530000 0a000002 e3a03000 (e5833000)
Kernel panic - not syncing: Fatal exception
libertas: command 0x0028 timed out
I am not sure whether there is something I did wrong, or there is something I missed, or there is some other problem with the iMX51 platform which I need to solve before porting WiFi.
Thanks very much and Best Regards William To
More information about the libertas-dev
mailing list