From owner-freebsd-drivers@FreeBSD.ORG Sat Jan 20 19:03:42 2007 Return-Path: X-Original-To: freebsd-drivers@freebsd.org Delivered-To: freebsd-drivers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7BC5916A400 for ; Sat, 20 Jan 2007 19:03:42 +0000 (UTC) (envelope-from almarrie@gmail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.174]) by mx1.freebsd.org (Postfix) with ESMTP id 0742013C469 for ; Sat, 20 Jan 2007 19:03:41 +0000 (UTC) (envelope-from almarrie@gmail.com) Received: by ug-out-1314.google.com with SMTP id o2so669693uge for ; Sat, 20 Jan 2007 11:03:41 -0800 (PST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=cHSHLut6/q3MzmCUW5TuO5+wFogVSAOZID33zQp0m/KxfHnB59LmH1K4V8et/aylb4EbCwa3Z9u0DzlEPF1GZOsII1o/ztEH8Dne+JRGxUfADyWrlF2piZyPDgBsy/LEQm3oMn3dte2F8H68L5g6lgaiJ7PzfcbxIk3qmP8CxXk= Received: by 10.67.99.1 with SMTP id b1mr5021283ugm.1169318326701; Sat, 20 Jan 2007 10:38:46 -0800 (PST) Received: by 10.66.255.10 with HTTP; Sat, 20 Jan 2007 10:38:46 -0800 (PST) Message-ID: <499c70c0701201038w6960174n3006ffd525f17bf6@mail.gmail.com> Date: Sat, 20 Jan 2007 18:38:46 +0000 From: "Abdullah Al-Marrie" To: "Benjamin Close" In-Reply-To: <45A0F739.3030202@clearchain.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <459E6477.2010508@clearchain.com> <200701051634.00293.max@love2party.net> <459E75A5.7000309@FreeBSD.org> <200701051732.27176.max@love2party.net> <45A0F739.3030202@clearchain.com> X-Mailman-Approved-At: Sun, 21 Jan 2007 15:14:58 +0000 Cc: Massimo Lusetti , Florent Thoumie , freebsd-hackers@freebsd.org, freebsd-drivers@freebsd.org, Attilio Rao , damien.bergamini@free.fr, sam@freebsd.org, gabor@freebsd.org, Max Laier Subject: Re: Updated Driver for 3945ABG Intel 3945ABG Wireless LAN controller X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Jan 2007 19:03:42 -0000 On 1/7/07, Benjamin Close wrote: > Massimo Lusetti wrote: > > On 1/5/07, Max Laier wrote: > >> Thoughts? Volunteers? > > I can say that the first attempt still running fine here on my laptop > > on a -STABLE as of yesterday. I use it on a daily basis without any > > glitch. I must say i don't do or tried to do nothing special or > > network intensive job, but for reading emails, doing a lot of ssh and > > http/https the drivers is working smoothly. > > > > I will try to compile this new one on my stable during the week end > > and will see on Monday how it will perform on my office wi-lan. > > > > For the records: my wpi doesn't still work on OpenBSD-current cause > > it's integrated and the switch used to turn it on seems an acpi one > > which OpenBSD doesn't attach very well yet. > Hi Folks, > I did the port as my searching led me to believe that progress on a > driver had stagnated. > Port 1: was done by Damien himself > (http://lists.freebsd.org/pipermail/freebsd-mobile/2006-July/008768.html) > Port 2: was an updated version by Daminen: > http://osdir.com/ml/freebsd-hackers@freebsd.org/msg58154.html > which seems to be duplicated here: > http://people.freebsd.org/~flz/local/wpi/ > (http://www.mail-archive.com/freebsd-net@freebsd.org/msg20710.html) > With version 2 being minor bug fixes to version 1 to try and get it > working. Since then the driver has come a long way in netbsd with the > FreeBSD version just getting older. > > To others working on a wpi driver, please post something indicating what > you've done and even a sample of what your up to so we can one build one > driver that just works. I also did the driver port as everything I found > failed to work on a 64bit kernel, most the time wouldn't even compile. > > I'm happy to try and maintain this driver. I have the hardware. > > The main bugs I know about in this driver port are: > > * The use of the iee80211_amrr code > The files exist in -current in /usr/src/sys/net80211 but the required > symbols are not in a GENERIC kernel build. There is a wlan_amrr module > which uses this code, though I'm not sure how to make use of this, it > appears a simple dependency on the module is not enough. The use of the > 80211_amrr code also means that use under -stable requires quite a bit > more work as Rink pointed out. > > * Bus resource allocation issues > Mainly related to: "bus_dmamem_alloc failed to align memory properly." > I'm hoping Mike > (http://lists.freebsd.org/pipermail/freebsd-stable/2006-June/026262.html) > might be able to help resolve these. > > These allocation issues are caused while allocating of the rx & tx ring > buffers - which if they are broken explain why things don't work. > I'm still coming to grips to how the whole bus_dma_tag_create works. The > Netbsd bus_dma_map_alloc seems much more intuitive. > I've found if the module failed the first time, unloading it, then > reloading it would often make the allocation issues disappear and the > driver just work. > Though I've also found sometimes that even though the allocation issues > are reported, things still work, I'm guessing the alignment is pulled > into line by higher levels of bus_dma. > > * ifconfig down causes timeouts reseting the tx ring > I'm still chasing the cause of this. It seems non critical as the driver > still works with an ifconfig up > > * Watch dog timer uses an obsolete interface > I'm looking into the correct way to do watchdog timing > > * A lock order reversal in wpi_intr > lock order reversal: > 1st 0xffffffff812d9e20 wpi0 (network driver) @ if_wpi.c:1554 > 2nd 0xffffff003cee32f0 radix node head (radix node head) @ net/route.c:147 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x3a > witness_checkorder() at witness_checkorder+0x4f9 > _mtx_lock_flags() at _mtx_lock_flags+0x75 > rtalloc1() at rtalloc1+0x7a > arplookup() at arplookup+0x5c > arpintr() at arpintr+0x255 > ether_demux() at ether_demux+0x2d3 > ether_input() at ether_input+0x1e9 > ieee80211_input() at ieee80211_input+0xd05 > wpi_intr() at wpi_intr+0x9d7 > ithread_loop() at ithread_loop+0xfe > fork_exit() at fork_exit+0xaa > fork_trampoline() at fork_trampoline+0xe > --- trap 0, rip = 0, rsp = 0xffffffffa0698d40, rbp = 0 --- > > For those wishing to help debug the driver and get it working, I've > posted a new version > http://www.clearchain.com/~benjsc/download/20070107-wpi-freebsd.tar.gz > > To help debug: > > kldload wpi_ucode > kldload if_wpi > wlandebug -i wpi0 0xffffff (I've included a copy of the -current > tool to save having to checkout the tree) > sysctl debug.wpi=10 (Debug levels are explained in if_wpi.c) > ifconfig wpi0 up > ... wait 30 seconds then... > ifconfig wpi0 down > > Then put /var/log/messages somewhere on the web & let me know > > This will dump lots of debug info to syslog but should help me work out > whats happening. If the driver works for you, stick to debug level 5 > max, else you'll be bombarded with logs. I'll try to install FBSD 32 > -current & -stable (32/64) on the laptop in the next week to see what > might be different. ANY feedback is helpful. > > Finally, for those who see "rx tail flags error xxx" this is caused by a > 802.11 frame with an invalid CRC. Hence seeing the occasional one (with > debug level 4 or higher) is quiet normal. If you see floods of them then > chances are the rx ring is really out of alignment and things will just > be busted. > > Cheers, > Benjamin Here it's FreeBSD DELL 6.2-STABLE FreeBSD 6.2-STABLE #1: Fri Jan 19 20:32:20 UTC 2007 Bdo@DELL:/usr/obj/usr/src/sys/BDO i386 DELL# tail /var/log/messages Jan 20 18:34:48 DELL kernel: rx intr: idx=63 len=128 stat len=89 rssi=61 rate=a chan=11 tstamp=134327399314interrupt reg 80000008 Jan 20 18:34:48 DELL kernel: rx notification qid=d5 idx=124 flags=0 type=157 len =244 Jan 20 18:34:48 DELL kernel: interrupt reg 80000008 Jan 20 18:34:48 DELL kernel: rx notification qid=d5 idx=125 flags=2 type=27 len= 128 Jan 20 18:34:48 DELL kernel: rx intr: idx=1 len=128 stat len=89 rssi=63 rate=a c han=11 tstamp=134327501715interrupt reg 80000008 Jan 20 18:34:48 DELL kernel: rx notification qid=d5 idx=126 flags=0 type=157 len =244 Jan 20 18:34:48 DELL kernel: sending data: qid=0 idx=118 len=2 nsegs=1 Jan 20 18:34:48 DELL kernel: wpi0: link state changed to DOWN Jan 20 18:34:48 DELL dhclient[263]: connection closed Jan 20 18:34:48 DELL dhclient[263]: exiting. Also in dmesg rx intr: idx=39 len=1232 stat len=1193 rssi=4 rate=5 chan=11 tstamp=134441615293rx tail flags error 702 interrupt reg 80000008 rx notification qid=84 idx=238 flags=2 type=27 len=128 rx intr: idx=40 len=128 stat len=89 rssi=63 rate=a chan=11 tstamp=134441677716interrupt reg 80000008 rx notification qid=84 idx=239 flags=0 type=157 len=244 interrupt reg 80000008 rx notification qid=85 idx=12 flags=0 type=157 len=244 interrupt reg 80000008 rx notification qid=85 idx=13 flags=2 type=27 len=128 rx intr: idx=7 len=128 stat len=89 rssi=63 rate=a chan=11 tstamp=134443213720interrupt reg 80000000 rx notification qid=85 idx=14 flags=0 type=157 len=244 interrupt reg 80000008 rx notification qid=85 idx=15 flags=2 type=27 len=128 rx intr: idx=9 len=128 stat len=89 rssi=62 rate=a chan=11 tstamp=134443316118interrupt reg 80000008 rx notification qid=85 idx=16 flags=0 type=157 len=244 interrupt reg 80000008 rx notification qid=85 idx=17 flags=2 type=27 len=128 rx intr: idx=11 len=128 stat len=89 rssi=63 rate=a chan=11 tstamp=134443418515interrupt reg 80000008 rx notification qid=85 idx=18 flags=0 type=157 len=244 interrupt reg 80000008 rx notification qid=85 idx=19 flags=2 type=27 len=128 rx intr: idx=13 len=128 stat len=89 rssi=62 rate=a chan=11 tstamp=134443520918interrupt reg 80000000 rx notification qid=85 idx=20 flags=0 type=157 len=244 -- Regards, -Abdullah Ibn Hamad Al-Marri Arab Portal http://www.WeArab.Net/