From owner-freebsd-arch@FreeBSD.ORG Wed Dec 22 15:49:55 2010 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 989861065670 for ; Wed, 22 Dec 2010 15:49:55 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wy0-f182.google.com (mail-wy0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 305298FC08 for ; Wed, 22 Dec 2010 15:49:54 +0000 (UTC) Received: by wyf19 with SMTP id 19so5090550wyf.13 for ; Wed, 22 Dec 2010 07:49:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=9XaQwqVJElCBHE6gudVzcEnIAGe8pX5BYYPRW+Oic5Q=; b=TQEOt6LuXR2nM9mlL/6XbsmypSyc/NIuvhQHg0+710ERzddDqEkDzx8lfFV0QEBAIG lYK2MCHJT6sZMZWSvCoYfuI7Kw+S0cs2ICmpcF6dI1XTSEzMz7I5XbEXbXcm8GfsLNiS kde/ogeTxAElDawMzL4a/Iw3S39sw2IhUIQdw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; b=iPt/nd1OAIHSl8MByg/dWCmprocjfeyu+/LCunRsqGmTkWh8lPTsnj3Yhq/N7Tqehy T12VShNMP9xJUPisSpgGA62fS7ovaNK65UntUrdU/q3LrGdLiYG/dukQIc8QH4JDqbOW zHNINLW/Dl81OOFuyHeJ2KGDDtZ2662BWkM/s= MIME-Version: 1.0 Received: by 10.216.154.3 with SMTP id g3mr7016023wek.3.1293031441360; Wed, 22 Dec 2010 07:24:01 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.216.173.213 with HTTP; Wed, 22 Dec 2010 07:24:01 -0800 (PST) Date: Wed, 22 Dec 2010 23:24:01 +0800 X-Google-Sender-Auth: Jm0BPZCHhdfnxOvIK-dbhwaf1rU Message-ID: From: Adrian Chadd To: freebsd-arch@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Initial 802.11n / ath support merge plan X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Dec 2010 15:49:55 -0000 Hi all, I'd like to start the process for merging in my initial 802.11n support into -HEAD and -8. My 802.11n work can be broken into a few chunks. The details aren't exhaustive, but they give a good idea of the breadth of the development I've been doing here. What I'd like to do is commit bits and pieces of work, rather than just doing a big "code drop" that changes a whole lot of stuff. Then let it bake for time, let users test it, etc, before moving onto the next bits. * net80211 work: + mostly to handle some of the 802.11n station related bits - enough for 2.4ghz HT/20 association. I've not tried 5ghz 11n; and HT/40 doesn't yet seem to work for whatever reason; * if_ath HAL work: + move 91xx and 92xx support into different chipset directories in the ath_hal directory + added support for the AR9100 + merged in some changes from Linux ath9k + some chipset reset path refactoring/restructuring + a set of "hardware ops" to abstract out the per-chipset differences of the AR5416 and later chips - again, based on ath9k - to make it easier in the future to port ath9k code to our HAL + added new hooks to tidy up handling TX descriptor completion for multi-rate stuff * ath_rate work: + ath_rate_sample now knows about _basic_ 802.11n stuff; enough to TX MCS rates + ath_rate_sample now calls a HAL method to pull the multi-rate TX completion data out, rather than fondling the TX descriptors directly + ath_rate_sample provides the TX rate list as an array, rather than directly calling the HAL to set up the TX descriptor * if_ath work: + refactored out the TX, RX, beacon, TDMA and debug code into separate source files + enabled some 802.11n related bits facing net80211 + added basic non-aggregate 11n TX support (incomplete so far) + disabled multicast hw crypto for now - this breaks AES-CCMP encryption which is needed for 11n WPA What I'd like to do in the short short term: * merge in the net80211 changes into HEAD, then backport those to RELENG_8. This sets up the scene to support 802.11n in station mode, but shouldn't break existing setups; * maintain the ath/ath_hal/ath_rate stuff in my GIT tree for now, and release drop-in snapshots for people to play with (and I've verified that the code does work under RELENG_8 :-); What I'd like to do moving forward, beginning in early Jan 2011: * Bring over the changes to the rate control modules to tidy up how they fondle the hardware - these changes are reasonably self-contained * Bring over the ath_hal changes. This brings over the AR9100 support, the re-factored HAL structure and changes from ath9k. I could try to separate that work out into separate patches but it's likely going to be a lot of of work for little gain. * Let users then test the AR5416, AR9160, AR9280, AR9285 support - and then find/fix whatever bugs crop up there (and the bugs that still exist!) * Finally, once that's done, look at attacking the if_ath code to enable the initial 11n support. What do people think? Adrian