Other Parts Discussed in Thread: WL1271
Tool/software: Linux
Hi,
Our Setup
we are using a WL1835MOD with Linux 4.4.38 (mainline/vanilla) on a iMX27 SoC. The userland is Debian Jessie (armel) / busybox based. The WiLink is attached to first SD interface (sdhci1).
&sdhci1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sdhc1>; bus-width = <4>; vmmc-supply = <®_wlan>; status = "okay"; #address-cells = <1>; #size-cells = <0>; wlcore: wlcore@2 { compatible = "ti,wl1835"; reg = <2>; interrupt-parent = <&gpio6>; interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; }; };
Firmware
We use the firmware from the 'linux-firmware' git repository from TI.
git://git.ti.com/wilink8-wlan/linux-firmware.git
We have tested versions '8.9.0.0.69' and '8.9.0.1.55'.
Configuration
We don't use any customized firmware configuration.
What is working
We are able to load the firmware and assign a static ip address.
ifconfig wlan0 up
[ 90.698270] wlcore: PHY firmware version: Rev 8.2.0.0.233 [ 90.820751] wlcore: firmware booted (Rev 8.9.0.1.55)
We can scan for APs and connect to an unencrypted AP.
iw wlan0 connect -w testwifi ifconfig wlan0 192.168.0.123
Most times we are even able to ping the AP.
ping 192.168.0.254 PING 192.168.0.254 (192.168.0.254): 56 data bytes 64 bytes from 192.168.0.254: seq=0 ttl=64 time=997.957 ms 64 bytes from 192.168.0.254: seq=1 ttl=64 time=2.798 ms 64 bytes from 192.168.0.254: seq=2 ttl=64 time=3.238 ms 64 bytes from 192.168.0.254: seq=3 ttl=64 time=5.058 ms ...
What is NOT working
download with wget
If we try to download the status page of the AP with wget we got the following warnings.
[ 2472.440442] wlcore: WARNING corrupted packet in RX: status: 0x1 len: 1536 [ 2472.622218] wlcore: WARNING corrupted packet in RX: status: 0x1 len: 480 [ 2473.042119] wlcore: WARNING corrupted packet in RX: status: 0x1 len: 480 [ 2473.882080] wlcore: WARNING corrupted packet in RX: status: 0x1 len: 480 [ 2475.563958] wlcore: WARNING corrupted packet in RX: status: 0x1 len: 480 [ 2478.922844] wlcore: WARNING corrupted packet in RX: status: 0x1 len: 480
DHCP client
When we try to get an ip address from a DHCP server it nerver succeeds.
udhcpc -i wlan0 udhcpc: started, v1.25.0 udhcpc: sending discover udhcpc: sending select for 192.168.0.101 udhcpc: sending select for 192.168.0.101 udhcpc: sending select for 192.168.0.101 udhcpc: sending discover udhcpc: sending discover udhcpc: sending discover udhcpc: sending discover udhcpc: sending discover
And if we try to assign an ip address after we killed the dhcp client we got the following error.
# ifconfig wlan0 192.168.0.123 [ 2966.252744] mxc-mmc 10013000.sdhci: mxcmci_watchdog: write time out (status = 0x32000840) [ 2966.261070] ------------[ cut here ]------------ [ 2966.267333] WARNING: CPU: 0 PID: 913 at /home/ilu/projects/ruag/src/linux/drivers/net/wireless/ti/wlcore/sdio.c:145 wl12xx_sdio_raw_write+0xe4/0x11c() [ 2966.282447] ---[ end trace 32b5decc7ca8bc96 ]--- [ 2966.293169] wl1271_sdio mmc0:0001:2: sdio write failed (-110) [ 2966.298969] ------------[ cut here ]------------ [ 2966.311874] WARNING: CPU: 0 PID: 913 at /home/ilu/projects/ruag/src/linux/drivers/net/wireless/ti/wlcore/main.c:802 wl12xx_queue_recovery_work+0x2c/0x78() [ 2966.327238] ---[ end trace 32b5decc7ca8bc97 ]--- [ 2966.331982] wlcore: WARNING cmd set_template failed: -110 [ 2966.342597] wlcore: WARNING build arp rsp failed: -110 [ 2966.356774] wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.1.55 # [ 2966.365976] wlcore: down [ 2966.370853] ieee80211 phy0: Hardware restart was requested [ 2966.835159] wlcore: PHY firmware version: Rev 8.2.0.0.233 [ 2966.957965] wlcore: firmware booted (Rev 8.9.0.1.55) [ 2967.027453] wlcore: Association completed.
Conclusion
It seems like if more then a small icmp package once in a while is send over the WiFi it works most times. But if we start to do a little traffic on the interface the Firmware doesn't respond anymore.