From owner-freebsd-wireless@FreeBSD.ORG Thu Aug 18 17:56:18 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E7A21065672 for ; Thu, 18 Aug 2011 17:56:18 +0000 (UTC) (envelope-from eric@shadowsun.net) Received: from mail.atlantawebhost.com (dns1.atlantawebhost.com [66.223.40.39]) by mx1.freebsd.org (Postfix) with ESMTP id BCB938FC14 for ; Thu, 18 Aug 2011 17:56:17 +0000 (UTC) Received: (qmail 32468 invoked from network); 18 Aug 2011 13:49:35 -0400 Received: from yktgi01e0-s5.watson.ibm.com (HELO atom-edge-009002034054.watson.ibm.com) (129.34.20.19) by mail.atlantawebhost.com with SMTP; 18 Aug 2011 13:49:35 -0400 Message-ID: <4E4D50AF.6070908@shadowsun.net> Date: Thu, 18 Aug 2011 13:49:35 -0400 From: Eric McCorkle User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: freebsd-wireless@freebsd.org References: <4E4C0DC9.8070808@shadowsun.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: BCM4313 support X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Aug 2011 17:56:18 -0000 On 8/17/11 7:12 PM, Adrian Chadd wrote: > On 18 August 2011 02:51, Eric McCorkle wrote: > >> >> I have been working on porting the BroadCom linux driver. I don't have much >> time to work on it, though, and it's a rather daunting task. > > Cool! Is there anything we can do to help? > Well, my objective is a working BCM 4322 (the card on macbooks) driver. Someone who better understands linux drivers could take a look at the wrapper code for the linux driver, and might be able to port it. More info: The broadcom linux driver consists of a closed-source object file, compiled with standard linux kernel calling conventions, and a bunch of linux wrapper code. It appears that the Broadcom engineers did a relatively good job; the object file makes calls to the kernel via an osl (presumably OS layer) interface, which seems pretty generic. One of the headers appears to define the linux instance of this layer, but it would seem others exist (probably for windows, for instance). The rest of the code is simply linux driver stuff that sets up interfaces, etc. The closed source .o file itself isn't stripped at all, and between the known compiler flags and the headers that give types for everything, there's enough information for complete reverse-compilation. I've been working on this myself, but I have very limited time to devote to it.