Strange problems with Marvell 8686 sdio on AT91SAM9263

Hans J. Koch hjk at linutronix.de
Fri May 30 14:13:42 EDT 2008


Hi,
I got a strange error report from a customer using libertas-sdio with a
8686 on an AT91SAM9263 platform. He tests with pings with different
blocksizes. It works fine, but only up to a certain blocksize. With
larger sizes, there's a TX timeout. After that timeout, it works again
for smaller sizes.

Below is the report I got from him (he cannot post it himself as they've
to use Lotus Notes in his company...)

Any ideas?

Thanks,
Hans

>>>>SNIP<<<<<

Pierre Ossman <drzeus at drzeus.cx>


Dear Mr. Koch,

here the informations, you wanted to get.

My problem: When I send larger pings (greater than 186 byte) to a host, I 
get no answer. In my kernel logs  is written "NETDEV WATCHDOG TIMEOUT"

The WLan Network is a Ad-Hoc Network between 2 Hosts, one is a Laptop with 
Intel Chipset, works fine. The embedded Device is a ATMEL AT91SAM9263.
The Wireless Lan chip is a Wi2Wi Chip with a Marvel 8686 Chip connected 
via SDIO.

I did some checks and  could see that a packet is immediately transmitted, 
but it looks like, that the netdev watchdog is not refreshed. The next 
packet is then blocked for about 10s.
If I do the opposide test and I send a ping from my Host to the Device, 
the first ping is answerd correct and all the following pings are lost.

Here some Outputs for you. Please don't hesitate to contact me.

DMESG Output:

~ # dmesg
[    0.000000] Linux version 2.6.25-rc7 (hans at blackbox) (gcc version 4.1.0 
20060304 (TimeSys 4.1.0-3)) #28 Fri Apr 4 17:48:51 CEST 2008
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), 
cr=00053177
[    0.000000] Machine: Atmel AT91SAM9263-EK
[    0.000000] Ignoring unrecognised tag 0x54410008
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 16384
[    0.000000]   DMA zone: 128 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 16256 pages, LIFO batch:3
[    0.000000]   Normal zone: 0 pages used for memmap
[    0.000000]   Movable zone: 0 pages used for memmap
[    0.000000] Clocks: CPU 199 MHz, master 99 MHz, main 16.367 MHz
[    0.000000] CPU0: D VIVT write-back cache
[    0.000000] CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 
128 sets
[    0.000000] CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 
128 sets
[    0.010000] Built 1 zonelists in Zone order, mobility grouping on. 
Total pages: 16256
[    0.010000] Kernel command line: root=/dev/mtdblock1 rootfstype=jffs2 
console=ttyS0,115200n8 debug
[    0.010000] AT91: 160 gpio irqs in 5 banks
[    0.010000] PID hash table entries: 256 (order: 8, 1024 bytes)
[    0.010000] Console: colour dummy device 80x30
[    0.010000] console [ttyS0] enabled
[    0.110000] Dentry cache hash table entries: 8192 (order: 3, 32768 
bytes)
[    0.120000] Inode-cache hash table entries: 4096 (order: 2, 16384 
bytes)
[    0.140000] Memory: 64MB = 64MB total
[    0.140000] Memory: 59544KB available (2976K code, 2241K data, 100K 
init)
[    0.150000] Calibrating delay loop... 99.73 BogoMIPS (lpj=498688)
[    0.340000] Security Framework initialized
[    0.340000] Capability LSM initialized
[    0.350000] Mount-cache hash table entries: 512
[    0.350000] CPU: Testing write buffer coherency: ok
[    0.370000] net_namespace: 152 bytes
[    0.370000] NET: Registered protocol family 16
[    0.410000] SCSI subsystem initialized
[    0.450000] NET: Registered protocol family 2
[    0.560000] IP route cache hash table entries: 1024 (order: 0, 4096 
bytes)
[    0.570000] TCP established hash table entries: 2048 (order: 2, 16384 
bytes)
[    0.570000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[    0.580000] TCP: Hash tables configured (established 2048 bind 2048)
[    0.590000] TCP reno registered
[    0.620000] NetWinder Floating Point Emulator V0.97 (extended 
precision)
[    0.630000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.640000] io scheduler noop registered
[    0.640000] io scheduler anticipatory registered
[    0.650000] io scheduler deadline registered
[    0.650000] io scheduler cfq registered (default)
[    0.720000] atmel_usart.0: ttyS0 at MMIO 0xfeffee00 (irq = 1) is a 
ATMEL_SERIAL
[    0.730000] atmel_usart.1: ttyS1 at MMIO 0xfff8c000 (irq = 7) is a 
ATMEL_SERIAL
[    0.740000] loop: module loaded
[    0.750000] MACB_mii_bus: probed
[    0.760000] eth0: Atmel MACB at 0xfffbc000 irq 21 (00:14:2d:00:01:43)
[    0.760000] eth0: attached PHY driver [Generic PHY] 
(mii_bus:phy_addr=ffffffff:00, irq=-1)
[    0.770000] Driver 'sd' needs updating - please use bus_type methods
[    0.800000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xa1 (Samsung 
NAND 128MiB 1,8V 8-bit)
[    0.810000] Scanning device for bad blocks
[    0.850000] Creating 3 MTD partitions on "at91_nand":
[    0.860000] 0x00000000-0x00800000 : "Kernel"
[    0.860000] 0x00800000-0x02800000 : "Root FS"
[    0.870000] 0x02800000-0x08000000 : "Data"
[    0.880000] mice: PS/2 mouse device common for all mice
[    0.890000] i2c /dev entries driver
[    0.910000] IPv4 over IPv4 tunneling driver
[    0.920000] TCP cubic registered
[    0.920000] NET: Registered protocol family 1
[    0.920000] NET: Registered protocol family 17
[    0.930000] RPC: Registered udp transport module.
[    0.930000] RPC: Registered tcp transport module.
[    0.940000] ieee80211: 802.11 data/management/control stack, git-1.1.13
[    0.950000] ieee80211: Copyright (C) 2004-2005 Intel Corporation 
<jketreno at linux.intel.com>
[    0.950000] ieee80211_crypt: registered algorithm 'NULL'
[    5.140000] VFS: Mounted root (jffs2 filesystem).
[    5.140000] Freeing init memory: 100K
[    5.510000] mmc0: new SDIO card at address 0001
[   10.080000] can: controller area network core (rev 20071116 abi 8)
[   10.090000] NET: Registered protocol family 29
[   10.220000] can: raw protocol (rev 20071116)
[   10.360000] AT91-AT91_CAN driver v0.0.1 (2007-10-26)
[   10.360000] AT91-AT91_CAN - options [clk 100.000000 MHz] [restart_ms 
100ms] [debug 1]
[   10.430000] net can0: can_open called
[   10.440000] net can0: set_baud, baud=250000, clock=100000000
[   10.440000] CAN: MAX3051 enabled.
[   13.810000] eth0: link up (100/Full)
[  206.520000] libertas_sdio: Libertas SDIO driver
[  206.520000] libertas_sdio: Copyright Pierre Ossman
[  207.290000] libertas: 00:19:88:05:1c:56, fw 8.73.7p3, cap 0x00000393
[  207.310000] libertas: PREP_CMD: command 0x00a3 failed: 2
[  207.320000] libertas: PREP_CMD: command 0x00a3 failed: 2
[  207.320000] libertas: eth1: Marvell WLAN 802.11 adapter
[  559.000000] NETDEV WATCHDOG: eth1: transmit timed out
[  559.000000] libertas: tx watch dog timeout
[  569.000000] NETDEV WATCHDOG: eth1: transmit timed out
[  569.000000] libertas: tx watch dog timeout
[  579.000000] NETDEV WATCHDOG: eth1: transmit timed out
[  579.000000] libertas: tx watch dog timeout
[  589.000000] NETDEV WATCHDOG: eth1: transmit timed out
[  589.000000] libertas: tx watch dog timeout
[  744.000000] NETDEV WATCHDOG: eth1: transmit timed out
[  744.000000] libertas: tx watch dog timeout
[  789.000000] NETDEV WATCHDOG: eth1: transmit timed out
[  789.000000] libertas: tx watch dog timeout
[ 1564.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 1564.000000] libertas: tx watch dog timeout
[ 1574.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 1574.000000] libertas: tx watch dog timeout
[ 1584.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 1584.000000] libertas: tx watch dog timeout
[ 1659.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 1659.000000] libertas: tx watch dog timeout
[ 2611.240000] net can0: can_close called
[ 2611.240000] CAN: MAX3051 disabled.
[ 2611.300000] Trying to free already-free IRQ 12
[ 2611.300000] CAN: MAX3051 disabled.
[ 2788.410000] NET: Unregistered protocol family 29
[ 2829.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 2829.000000] libertas: tx watch dog timeout
[ 2894.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 2894.000000] libertas: tx watch dog timeout
[ 2944.000000] NETDEV WATCHDOG: eth1: transmit timed out
[ 2944.000000] libertas: tx watch dog timeout
[ 3445.230000] can: controller area network core (rev 20071116 abi 8)
[ 3445.240000] NET: Registered protocol family 29
[ 3445.270000] can: request_module (can-proto-1) failed.

iwconfig eth1
eth1      IEEE 802.11b/g  ESSID:"1"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:26:B6:FC:D7:F4
          Bit Rate:54 Mb/s
          Encryption key:off
          Power Management:off
          Link Quality=100/100  Signal level=0 dBm  Noise level=-96 dBm
          Rx invalid nwid:0  Rx invalid crypt:26  Rx invalid frag:2534
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0



More information about the libertas-dev mailing list