svn commit: r326454 - in head/sys: conf dev/bwn gnu/dev/bwn/phy_n modules/bwn modules/bwn_pci

Kyle Evans kevans at freebsd.org
Sat Dec 2 06:27:42 UTC 2017


On Dec 1, 2017 8:21 PM, "Landon J. Fuller" <landonf at 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


More information about the svn-src-all mailing list