Landon J. Fuller
8d14ca9c99
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
Approved by: adrian (mentor, implicit)
Sponsored by: The FreeBSD Foundation & Plausible Labs
Differential Revision: https://reviews.freebsd.org/D13041
2017-12-02 02:21:27 +00:00
..
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-26 23:12:32 +00:00
2017-03-04 10:10:17 +00:00
2017-07-09 22:53:24 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-29 23:41:49 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-05 15:13:41 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-19 17:15:40 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-05-25 04:18:46 +00:00
2017-03-04 10:10:17 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-05-25 04:18:46 +00:00
2017-03-04 10:10:17 +00:00
2017-05-25 04:18:46 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-28 00:42:44 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-12-02 02:21:27 +00:00
2017-12-02 02:21:27 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-30 04:56:27 +00:00
2017-04-15 20:51:53 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-24 14:02:32 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-07-01 21:18:06 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-30 04:56:27 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-13 17:49:23 +00:00
2017-11-07 23:52:14 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-11 03:01:18 +00:00
2017-03-04 10:10:17 +00:00
2017-11-18 16:07:53 +00:00
2017-11-27 15:23:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-21 17:23:16 +00:00
2017-03-04 10:10:17 +00:00
2017-10-10 19:14:40 +00:00
2017-05-22 14:46:13 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-20 14:28:51 +00:00
2017-04-07 16:14:25 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-13 14:07:13 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-05-10 05:28:14 +00:00
2017-09-17 22:58:13 +00:00
2017-06-15 12:47:48 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-17 22:40:02 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-04-03 03:07:48 +00:00
2017-03-04 10:10:17 +00:00
2017-06-15 12:47:48 +00:00
2017-03-04 10:10:17 +00:00
2017-05-18 06:13:29 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-16 13:28:00 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-04 21:05:58 +00:00
2017-10-10 04:50:05 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-07-05 17:27:03 +00:00
2017-03-04 10:10:17 +00:00
2017-07-13 22:45:23 +00:00
2017-03-04 10:10:17 +00:00
2017-07-05 17:27:03 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-04 18:24:41 +00:00
2017-06-04 18:24:41 +00:00
2017-03-04 10:10:17 +00:00
2017-06-26 21:14:33 +00:00
2017-09-12 23:36:58 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-21 09:08:27 +00:00
2017-03-04 10:10:17 +00:00
2017-11-13 10:49:18 +00:00
2017-11-10 09:49:08 +00:00
2017-03-04 10:10:17 +00:00
2017-11-10 15:02:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-16 22:23:04 +00:00
2017-07-09 17:02:47 +00:00
2017-05-08 20:58:32 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-09 12:06:22 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-04-24 21:21:49 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-30 21:16:32 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-11-14 05:05:21 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-05 03:05:24 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-11 17:43:25 +00:00
2017-03-04 10:10:17 +00:00
2017-08-21 20:27:45 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-15 12:47:48 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-06-09 07:08:58 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-07-10 03:38:07 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-16 10:38:06 +00:00
2017-08-16 10:38:06 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-09 01:21:28 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-27 18:20:32 +00:00
2017-05-09 05:22:51 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-09-11 19:07:53 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-08-19 17:00:10 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-04-30 02:08:46 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-03-04 10:10:17 +00:00
2017-10-01 16:11:07 +00:00
2017-03-04 10:10:17 +00:00
2017-11-30 17:58:48 +00:00
2017-01-28 02:22:15 +00:00