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