opnsense-src/sys/dev/bhnd
Landon J. Fuller eaa5fb4b80 bhndb(4): Implement bridge support for the BCM4312 and other PCI_V0 chipsets.
Very early (PCI_V0) Broadcom PCI Wi-Fi chipsets have a few quirks when
compared to later PCI(e) core revisions:

- The standard static BAR0 mapping of the PCI core registers is discontiguous,
  with siba's cfg0 register block mapped distinctly from the other core
  registers.
- No dedicated ChipCommon register mapping is provided; instead, the
  single configurable register window must be used to access both
  ChipCommon and D11 core registers. The D11 core's operational semantics
  guarantee the safety of -- after disabling interrupts -- borrowing
  the single dynamic register window to perform the few ChipCommon
  operations required by a driver.

To support these early PCI devices:

- Allow defining multiple discontiguous BHNDB_REGWIN_T_CORE register
  windows that map a single port/region, and producing bridged resource
  allocations backed by those discontiguous windows.
- Support stealing existing register window allocations to fulfill indirect
  bhnd(4) bus I/O requests within address ranges tagged with
  BHNDB_ALLOC_FULFILL_ON_OVERCOMMIT.
- Fix an inverted test of bhndb_is_pcie_attached() that disabled
  PCI-only clock bring-up required by these devices.

Approved by:	adrian (mentor, implicit)
Sponsored by:	The FreeBSD Foundation
2017-11-28 00:12:14 +00:00
..
bcma bhnd(4): Fix bcma/siba core reset behavior 2017-11-27 22:13:30 +00:00
bhndb bhndb(4): Implement bridge support for the BCM4312 and other PCI_V0 chipsets. 2017-11-28 00:12:14 +00:00
cores bhnd(4): Fix bcma/siba core reset behavior 2017-11-27 22:13:30 +00:00
nvram bhnd(4) update inline documentation comments and man pages. 2017-11-27 21:30:49 +00:00
siba siba(4): fix workaround for BCM4312 D11 core backplane timeouts 2017-11-27 22:38:44 +00:00
tools bhnd: remove srand() to ensure deterministic output 2016-12-21 15:45:23 +00:00
bhnd.c bhnd(4): Print the core's hardware revision in bhnd(4)'s 2017-11-27 22:29:35 +00:00
bhnd.h bhnd(4): Fix bcma/siba core reset behavior 2017-11-27 22:13:30 +00:00
bhnd_bus_if.m bhnd(4): Fix bcma/siba core reset behavior 2017-11-27 22:13:30 +00:00
bhnd_debug.h - Fix make in sys/modules/bhnd 2016-11-01 03:49:31 +00:00
bhnd_erom.c bhnd(4) update inline documentation comments and man pages. 2017-11-27 21:30:49 +00:00
bhnd_erom.h bhnd: Add support for supplying bus I/O callbacks when initializing an EROM 2017-09-27 19:48:34 +00:00
bhnd_erom_if.m bhnd: Add support for supplying bus I/O callbacks when initializing an EROM 2017-09-27 19:48:34 +00:00
bhnd_erom_types.h Implement a generic bhnd(4) device enumeration table API. 2016-09-03 23:57:17 +00:00
bhnd_eromvar.h bhnd: Add support for supplying bus I/O callbacks when initializing an EROM 2017-09-27 19:48:34 +00:00
bhnd_ids.h bhnd(4): implement MIPS and PCI(e) interrupt support 2017-11-21 23:15:20 +00:00
bhnd_match.h bhnd(4): implement MIPS and PCI(e) interrupt support 2017-11-21 23:15:20 +00:00
bhnd_private.h bhnd(4): extend the PMU APIs to support bwn(4) 2017-11-22 20:27:46 +00:00
bhnd_subr.c bhnd(4) update inline documentation comments and man pages. 2017-11-27 21:30:49 +00:00
bhnd_types.h bhnd(4): Add a basic ChipCommon GPIO driver sufficient to support bwn(4) 2017-11-22 23:10:20 +00:00
bhndreg.h bhnd(4): extend the PMU APIs to support bwn(4) 2017-11-22 20:27:46 +00:00
bhndvar.h bhnd(4): extend the PMU APIs to support bwn(4) 2017-11-22 20:27:46 +00:00