Hi Bobby,
A couple of issues .... and suggestions ...

1. Why is the wireless device coming up as eth2 instead of eth1 or wlan0?
In original intention it should be eth1 and then remapped to wlan0 as per the bitbake recipes and script patch that
was supplied for this in netbase and libertas-firmware (cf8385.init).

2. Try using the latest libertas firmware (for cf) files instead of the old (rather obsolete)
ones that gumstix used in 2.6.21 for netpro-vx support?

You can find this at:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
The files are cf8385.bin and cf8385_helper.bin

Rename them to the corresponding "libertas_cs.fw and libertas_cs_helper.fw" filenames in the
target /lib/firmware/ folder.  I recommend cloning the entire repository first in order to
extract the files since directly downloading the binary files from the git web interface
isn't very reliable (sometimes truncates/corrupts the files).

Alternatively you can modify the libertas-cs bitbake recipe I previously supplied in order to
retrieve the latest files from the above git repository instead of bringing in the files directly.
(If you need the exact recipe, let me know and I will work it out myself and send it to you).

3. The git repository linked below differs somewhat from what I and others had prepared
(based on overo git branch from org.openembedded.dev) and instead is using newer
base code commit.  There was some theory on other mailing list items (from overo)
that the newer wpa-supplicant in 2.6.31 for example has introduced some timing changes that made
the wifi unstable. 

Basically, from a root cause analysis perspective, I think we would need to determine why
the f.w stops responding (and subsequently leads to the WD timer timeout).  What triggers the
initial problem in the driver logic? Is it always consistent at 30 minutes?  What settings did
you set in ifconfig for the txpower (is it auto?) etc to control the power management on the
wifi device?

I didn't dig into the code you used much, but did you patch the smsc911x driver to adjust the
interrupt de-assertion timeout?  I needed to adjust it from the original 100us to (22*10 =) 220us.
This was always a requirement going back to the original gumstix driver as well.

4. There are also a libertas-dev and linux-wireless related mailing lists.  You could try there:
http://lists.infradead.org/mailman/listinfo/libertas-dev and


From: Bobby Powers <bobbypowers@gmail.com>
To: General mailing list for gumstix users. <gumstix-users@lists.sourceforge.net>
Sent: Mon, November 23, 2009 10:43:05 PM
Subject: [Gumstix-users] Verdex Pro wireless woes

Hi folks,

I'm working on project involving a Verdex Pro, Robostix and netpro-vx
with the wireless module.  I'm running a newer kernel (2.6.31 w/
Verdex patches [1]) which uses the libertas driver for the firmware.
I've got an application that connects to a link-local server over the
wireless and transmits a modest amount of data back and forth (the
gumstix transmits at about 100kB/min, and receives at around
200kB/min) at a steady rate (tx happens at 20 hz).

The problem is that the libertas driver hits a WARN within 30 minutes
after starting this app and stops being able to transmit or receive.
It seems the firmware on the card (which I got from [2]) stops
responding to the libertas driver, the drivers tx queue fills up,
tripping a watchdog function.  'Ejecting' the libertas card, clearing
GPIO 80, unloading the libertas_cs and libertas modules, setting GPIO
80 and using pccardctl to insert the wireless module does allow me to
start using wireless again.

Has anyone dealt with this before?  How does the stock Verdex Pro
kernel deal with the Marvell firmware (and does it use the same
tarball to extract the firmware from)?  Does anyone have any ideas?
This happens both under ad-hoc and managed modes, at both 54Mb/s and
11Mb/s bit rates, and with the base station set to either 802.11g and
802.11b modes.

Any suggestions or insight would be fantastic.


[1] - available at
[2] - http://files.gumstix.com/cf8385-5.0.16.p0-26306.tbz


Linux version (bobby@...) (gcc version
4.1.2 20070925 (Red Hat 4.1.2-33.fa1)) #46 PREEMPT Thu Nov 19 00:23:39
EST 2009
CPU: XScale-PXA270 [69054117] revision 7 (ARMv5TE), cr=0000397f
CPU: VIVT data cache, VIVT instruction cache
Machine: Gumstix verdex
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 32768
free_area_init_node: node 0, pgdat c0312d00, node_mem_map c0326000
  Normal zone: 256 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 32512 pages, LIFO batch:7
Run Mode clock: 208.00MHz (*16)
Turbo Mode clock: 624.00MHz (*3.0, active)
Memory clock: 104.00MHz (/2)
System bus clock: 104.00MHz
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyS0,115200n8 rootdelay=1 root=/dev/mmcblk0p2
PID hash table entries: 512 (order: 9, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 126576KB available (2796K code, 203K data, 100K init, 0K highmem)
Preemptible RCU implementation.
Console: colour dummy device 80x30
Calibrating delay loop... 622.59 BogoMIPS (lpj=3112960)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
Gumstix verdex udc is disabled
Gumstix verdex host usb ohci is disabled
Initializing Gumstix verdex i2c
Initializing Gumstix verdex pcmcia
Not netCF-vx board: pcmcia using newer GPIO configuration
CPLD responded with: 00
found 1 CF slots
Initializing Gumstix platform_add_devices
bio: create slab <bio-0> at 0
SCSI subsystem initialized
I2C: i2c-0: PXA I2C adapter
I2C: i2c-1: PXA I2C adapter
Switched to high resolution mode on CPU 0
Registering gumstix PCMCIA interface.
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
PXA CPU 27x max frequency not defined (pxa27x_maxfreq), assuming
pxa271 with 416000kHz maxfreq
cpufreq: Didn't find vcc_core regulator
PXA CPU frequency change support initialized
msgmni has been set to 247
alg: No test for stdrng (krng)
alg: No test for stdrng (ansi_cprng)
io scheduler noop registered
io scheduler cfq registered (default)
pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART
console [ttyS0] enabled
pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART
pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART
loop: module loaded
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
pxa-rtc pxa-rtc: rtc core: registered pxa-rtc as rtc0
i2c /dev entries driver
SA1100/PXA2xx Watchdog Timer: timer margin 60 sec
cpuidle: using governor ladder
cpuidle: using governor menu
TCP cubic registered
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
XScale iWMMXt coprocessor detected.
pxa-rtc pxa-rtc: setting system clock to 2000-01-01 00:00:10 UTC (946684810)
Waiting 1sec before mounting root device...
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SD card at address a041
mmcblk0: mmc0:a041 SU02G 1.84 GiB
mmcblk0: p1 p2
pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0
VFS: Mounted root (ext2 filesystem) on device 179:2.
Freeing init memory: 100K
pcmcia_socket pcmcia_socket0: pccard: card ejected from slot 0
pcmcia_socket pcmcia_socket0: pccard: PCMCIA card inserted into slot 0
pcmcia 0.0: pcmcia: registering new device pcmcia0.0
libertas_cs 0.0: firmware: requesting libertas_cs_helper.fw
libertas_cs 0.0: firmware: requesting libertas_cs.fw
libertas: 00:0b:6b:0d:b8:e5, fw 5.0.16p0, cap 0x00000393
libertas: PREP_CMD: command 0x00a3 failed: 2
libertas: PREP_CMD: command 0x00a3 failed: 2
libertas: eth0: Marvell WLAN 802.11 adapter
udev: renamed network interface eth0 to eth2
------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:246 dev_watchdog+0x190/0x2a0()
NETDEV WATCHDOG: eth2 (libertas_cs): transmit queue 0 timed out
Modules linked in: libertas_cs libertas
[<c0027be8>] (unwind_backtrace+0x0/0xd4) from [<c0034a64>]
[<c0034a64>] (warn_slowpath_common+0x4c/0x68) from [<c0034abc>]
[<c0034abc>] (warn_slowpath_fmt+0x28/0x38) from [<c01f4ca4>]
[<c01f4ca4>] (dev_watchdog+0x190/0x2a0) from [<c003e1b8>]
[<c003e1b8>] (run_timer_softirq+0x164/0x21c) from [<c0039ce0>]
[<c0039ce0>] (__do_softirq+0x80/0x110) from [<c003a038>] (irq_exit+0x44/0x9c)
[<c003a038>] (irq_exit+0x44/0x9c) from [<c0021070>] (asm_do_IRQ+0x70/0x8c)
[<c0021070>] (asm_do_IRQ+0x70/0x8c) from [<c0021a04>] (__irq_svc+0x44/0xe4)
Exception stack(0xc02f3f80 to 0xc02f3fc8)
3f80: 00000001 c5c6831e 01614d1e 60000013 c02f2000 c0313560 c001ee10 c02f5b18
3fa0: a001ca78 69054117 a001ca44 00000000 c02f3f08 c02f3fc8 c00234b0 c00234bc
3fc0: 60000013 ffffffff
[<c0021a04>] (__irq_svc+0x44/0xe4) from [<c00234bc>] (default_idle+0x2c/0x34)
[<c00234bc>] (default_idle+0x2c/0x34) from [<c002339c>] (cpu_idle+0x5c/0xb4)
[<c002339c>] (cpu_idle+0x5c/0xb4) from [<c00089f4>] (start_kernel+0x27c/0x2e8)
[<c00089f4>] (start_kernel+0x27c/0x2e8) from [<a0008034>] (0xa0008034)
---[ end trace 733fd693c57bccf1 ]---
libertas: tx watch dog timeout
libertas: command 0x0010 timed out
libertas: requeueing command 0x0010 due to timeout (#1)
libertas: tx watch dog timeout
libertas: command 0x0010 timed out
libertas: requeueing command 0x0010 due to timeout (#2)
libertas: command 0x0010 timed out
libertas: requeueing command 0x0010 due to timeout (#3)
libertas: command 0x0010 timed out
libertas: Excessive timeouts submitting command 0x0010
libertas: tx watch dog timeout
libertas: command 0x001f timed out
libertas: requeueing command 0x001f due to timeout (#1)
libertas: tx watch dog timeout
libertas: command 0x001f timed out
libertas: requeueing command 0x001f due to timeout (#2)
libertas: command 0x001f timed out
libertas: requeueing command 0x001f due to timeout (#3)
libertas: command 0x001f timed out
libertas: Excessive timeouts submitting command 0x001f
... (requeueing command 0x001f continues indefintely)

eth2      Link encap:Ethernet  HWaddr 00:0b:6b:0d:b8:e5
          inet addr:  Bcast:  Mask:
          RX packets:36362 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25468 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6364828 (6.0 MiB)  TX bytes:3283219 (3.1 MiB)

Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
gumstix-users mailing list