Supporting newer atheros chipsets...

Previous thread: Re: vr driver trouble on Soekris 5501 by Christian Plattner on Friday, October 12, 2007 - 8:53 am. (1 message)

Next thread: Re: vr driver trouble on Soekris 5501 by Christian Plattner on Friday, October 12, 2007 - 9:15 am. (1 message)
From: Reyk Floeter
Date: Friday, October 12, 2007 - 8:55 am

Hi!

People who had problems with unsupported Atheros devices (single chip
variants found in recent laptops, macbooks, etc.) should get the
latest code from CVS and test it... I was able to make 11b mode work
on at least two different new-age chipsets:

ath0 at pci2 dev 0 function 0 "Atheros AR5212 (IBM MiniPCI)" rev 0x01: apic 1 int 17 (irq 11)
ath0: ARxxxx 10.3 phy 6.1 rf 10.2, WOR2W, address 00:16:cf:ab:4c:97
ath1 at cardbus0 dev 0 function 0 "Atheros Communications, Inc., AR5001-0000-0000, Wireless LAN Reference Card": irq 10
ath1: AR5413 10.5 phy 6.1 rf 6.3, WOR0W, address 00:12:bf:0e:7d:36

Thanks again to Dave Del Debbio and David Menzel for donating me PCI
Express MiniCards for testing and development.

But there are still some known problems:

- The ath0 device sometimes runs into a hardware-locking RX overrun
bug. The only way to recover the device is to _cold_ start the
computer.  Use "ifconfig ath0 debug" and look for "rx FIFO overrun;
resetting".

- The devices sometimes need a long time to calibrate, just associate
and wait some seconds before trying your first ping.

- The offset is not alway right, I'm trying to find a better way to
set the channels correctly. See the attached commit message for more info.

- more...?

Hacked and tested in the Melbourne Museum during the AUUG 2007...

reyk

----- Forwarded message from Reyk Floeter <reyk@cvs.openbsd.org> -----

Date: Fri, 12 Oct 2007 09:34:12 -0600 (MDT)
From: Reyk Floeter <reyk@cvs.openbsd.org>
To: source-changes@cvs.openbsd.org
Subject: CVS: cvs.openbsd.org: src
X-Loop: source-changes@openbsd.org
Precedence: list

CVSROOT:	/cvs
Module name:	src
Changes by:	reyk@cvs.openbsd.org	2007/10/12 09:34:11

Modified files:
	sys/dev/ic     : ar5xxx.c ar5xxx.h 

Log message:
The newer single chip Atheros wireless chipsets like the AR5424,
AR2423 etc. are mostly compatible to the AR5212 but use a different
algorithm to set the 2GHz RF channel, that's why they didn't work in
OpenBSD.  I figured out ...
From: Reyk Floeter
Date: Friday, October 12, 2007 - 6:52 pm

ok, it appears that the offset varies in some cases and there needs to
be some sort of calibration. you can use the attached diff to adjust
the offset to make it work - this is really only for testing and not
for the tree.

for example, here in the melbourne museum i have to adjust the offset
by 5MHz to be able to join the public wireless network:

# ifconfig ath1 chanoff 5 down up                                                                     
# ifconfig ath1           
ath1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:12:bf:0e:7d:36
        groups: wlan egress
        media: IEEE802.11 autoselect (DS2 mode 11b)
        status: active
        ieee80211: nwid museumpublic chan 1 (offset 5) bssid 00:12:a9:4f:2a:82 82%
        inet6 fe80::212:bfff:fe0e:7d36%ath1 prefixlen 64 scopeid 0x5
        inet 136.154.47.89 netmask 0xffffff00 broadcast 136.154.47.255

if you experience any problems, try to set the chanoff to positive or
negative numbers and send me some feedback.

reyk

Index: sbin/ifconfig/ifconfig.c
===================================================================
RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v
retrieving revision 1.188
diff -u -p -r1.188 ifconfig.c
--- sbin/ifconfig/ifconfig.c	9 Oct 2007 21:41:54 -0000	1.188
+++ sbin/ifconfig/ifconfig.c	13 Oct 2007 01:41:55 -0000
@@ -154,6 +154,7 @@ void	setifnwid(const char *, int);
 void	setifbssid(const char *, int);
 void	setifnwkey(const char *, int);
 void	setifchan(const char *, int);
+void	setifchanoff(const char *, int);
 void	setiftxpower(const char *, int);
 void	setifpowersave(const char *, int);
 void	setifpowersavesleep(const char *, int);
@@ -283,6 +284,8 @@ const struct	cmd {
 	{ "-nwkey",	-1,		0,		setifnwkey },
 	{ "chan",	NEXTARG,	0,		setifchan },
 	{ "-chan",	-1,		0,		setifchan },
+	{ "chanoff",	NEXTARG,	0,		setifchanoff },
+	{ "-chanoff",	-1,		0,		setifchanoff },
 	{ "powersave",	1,		0,		setifpowersave },
 	{ ...
Previous thread: Re: vr driver trouble on Soekris 5501 by Christian Plattner on Friday, October 12, 2007 - 8:53 am. (1 message)

Next thread: Re: vr driver trouble on Soekris 5501 by Christian Plattner on Friday, October 12, 2007 - 9:15 am. (1 message)