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