firmware issues.

Ram kumar ramkumar.research at gmail.com
Sat Sep 27 06:17:28 EDT 2008


hi,

> currently i'm only able to use firmware 8.73.7.p3 (downloaded from marvell.com) with my wi2wi module. The 9.70.3.p18 firmware doesn't support the CMD_802_11_DATA_RATE command that the libertas driver currently needs. there has been some progress moving forward to the 9.70.3.p18, but i don't expect it to be ready for production stuff anytime soon.
>
> thanks
> Dave Anders aka prpplague

Even the firmware 8.73.7.p3 goes in to error sometimes when i try to
get a Dynamic ip address using dhclient and also when i
upload/download a large file.I am using the same wi2wi module with the
firmware version 8.73.7.p3 in my embedded platform AT91SAM9260 (host
controller).

Linux version:2.6.25.

As said in the drivers/net/wireless/libertas/if_sdio.c my host
controller cannot do transfers that aren't multiples of 4 bytes.

So i modified the both if_sdio_host_to_card() to pad the data

Index: net-2.6.25/drivers/net/wireless/libertas/if_sdio.c
===================================================================
--- net-2.6.25.orig/drivers/net/wireless/libertas/if_sdio.c	2008-01-26
23:05:46.000000000 +0100
+++ net-2.6.25/drivers/net/wireless/libertas/if_sdio.c	2008-01-28
10:34:15.000000000 +0100
@@ -280,6 +280,8 @@
 	 * The transfer must be in one transaction or the firmware
 	 * goes suicidal.
 	 */
+	/* round up size to next multiple of 4 */
+	size = (size + 3) & ~3;
 	chunk = size;
 	if ((chunk > card->func->cur_blksize) || (chunk > 512)) {
 		chunk = (chunk + card->func->cur_blksize - 1) /
@@ -711,6 +713,8 @@
 	 * goes suicidal.
 	 */
 	size = nb + 4;
+	/* round up to next multiple of 4 */
+	size = (size + 3) & ~3;
 	if ((size > card->func->cur_blksize) || (size > 512)) {
 		size = (size + card->func->cur_blksize - 1) /
 			card->func->cur_blksize * card->func->cur_blksize;

Then my wi2wi module connects to AP and it is able to connect to the
access point.

It is able to upload small files to a server,but when i upload a file
that is 300KB the firmware fails.

I beleive my patch to the if_sdio.c is not responsible for the error
caused.Please correct me if i am wrong.

Here is the log of the messages what happens if upload a large file
using FTPPUT command.

ibertas: tx watch dog timeout
libertas: Command 1f timed out
libertas: requeueing command 1f due to timeout (#1)

And the messages continue like this and my target stops responding and
i have to restart the target with the reset button.

Has anybody tried uploading a big file like 1 MB to any server using wi2wi ??

I have also tried using dhclient to get a dynamic ip address from the
AP.But the firmware fails in between with a error message.

Here is the log of the messages.

Internet Systems Consortium DHCP Client V3.0.5
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth1/00:19:88:05:10:17
Sending on   LPF/eth1/00:19:88:05:10:17
Sending on   Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 13
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 17
NETDEV WATCHDOG: eth1: transmit timed out
libertas: tx watch dog timeout
libertas: Command 1f timed out
libertas: requeueing command 1f due to timeout (#1)
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 14
NETDEV WATCHDOG: eth1: transmit timed out
libertas: tx watch dog timeout
libertas: Command 1f timed out
libertas: requeueing command 1f due to timeout (#2)
NETDEV WATCHDOG: eth1: transmit timed out
libertas: tx watch dog timeout
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 10
libertas: Command 1f timed out
libertas: requeueing command 1f due to timeout (#3)

I believe that it is because of the firmware.Please correct me if i am
wrong.Please let me know if there is any work around for this.....

Regards,
Ram



More information about the libertas-dev mailing list