Date: Sat, 2 Dec 2017 00:21:14 -0600 From: Kyle Evans <kevans@freebsd.org> To: "Landon J. Fuller" <landonf@freebsd.org> Cc: src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r326454 - in head/sys: conf dev/bwn gnu/dev/bwn/phy_n modules/bwn modules/bwn_pci Message-ID: <CACNAnaF6c8q2tzC_j7R%2B0BbOQau6u_OX6MZTnAx8e9eoRtEZ4w@mail.gmail.com> In-Reply-To: <201712020221.vB22LRHZ088670@repo.freebsd.org> References: <201712020221.vB22LRHZ088670@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 1, 2017 8:21 PM, "Landon J. Fuller" <landonf@freebsd.org> wrote: Author: landonf Date: Sat Dec 2 02:21:27 2017 New Revision: 326454 URL: https://svnweb.freebsd.org/changeset/base/326454 Log: Introduce bwn(4) support for the bhnd(4) bus. Currently, bwn(4) relies on the siba_bwn(4) bus driver to provide support for the on-chip SSB interconnect found in Broadcom's older PCI(e) Wi-Fi adapters. Non-PCI Wi-Fi adapters, as well as the newer BCMA interconnect found in post-2009 Broadcom Wi-Fi hardware, are not supported by siba_bwn(4). The bhnd(4) bus driver (also used by the FreeBSD/MIPS Broadcom port) provides a unified kernel interface to a superset of the hardware supported by siba_bwn; by attaching bwn(4) via bhnd(4), we can support both modern PCI(e) Wi-Fi devices based on the BCMA backplane interconnect, as well as Broadcom MIPS WiSoCs that include a D11 MAC core directly attached to their SSB or BCMA backplane. This diff introduces opt-in bwn(4) support for bhnd(4) by providing: - A small bwn(4) driver subclass, if_bwn_bhnd, that attaches via bhnd(4) instead of siba_bwn(4). - A bhndb(4)-based PCI host bridge driver, if_bwn_pci, that optionally probes at a higher priority than the siba_bwn(4) PCI driver. - A set of compatibility shims that perform translation of bwn(4)'s siba_bwn function calls into their bhnd(9) API equivalents when bwn(4) is attached via a bhnd(4) bus parent. When bwn(4) is attached via siba_bwn(4), all siba_bwn function calls are simply passed through to their original implementations. To test bwn(4) with bhnd(4), place the following lines in loader.conf(5): hw.bwn_pci.preferred="1" if_bwn_pci_load="YES bwn_v4_ucode_load="YES" bwn_v4_lp_ucode_load="YES" To verify that bwn(4) is using bhnd(4), you can check dmesg: bwn0: <Broadcom 802.11 MAC/PHY/Radio, rev 15> ... on bhnd0 ... or devinfo(8): pcib2 pci2 bwn_pci0 bhndb0 bhnd0 bwn0 ... bwn(4)/bhnd(4) has been tested for regressions with most chipsets currently supported by bwn(4), including: - BCM4312 - BCM4318 - BCM4321 With minimal changes to the DMA code (not included in this commit), I was also able to test support for newer BCMA devices by bringing up basic working Wi-Fi on two previously unsupported, BCMA-based N-PHY chipsets: - BCM43224 - BCM43225 Hi, I'm pretty sure we've discussed this, but I don't recall to what detail that was- I recall that the 4313 is BCMA, but does it have one of the PHYs that we support already? If so, I'll happily test there. Thanks, Kyle Evans
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaF6c8q2tzC_j7R%2B0BbOQau6u_OX6MZTnAx8e9eoRtEZ4w>