bhnd(4) - Broadcom Home Networking Division interconnect bus driver
The bhnd driver provides a unified kernel bus interface to the on-chip interconnects used in Broadcom Home Networking Division (HND) devices.
The Broadcom HND device family consists of SoCs (System On a Chip) and host-connected chipsets based on a common library of Broadcom IP cores connected via an internal hardware bus architecture. Drivers for these common IP cores are implemented against the unified bhnd interface.
Common Core Drivers
Additional Hardware Documentation
The BCM440X appears to share common IP with Broadcom's Sonics-based BCM43xx hardware. The BCM440X Programmer's Reference Guide documents the per-core configuration registers used in Sonics-based devices (providing core identification, control clocks, reset, etc), as well as PCI, SPROM, and DMA IP compatible (in part or in full) with HND BCM43xx devices.
The Linux b43 project published reverse-engineered documentation covering Sonics-based BCM43xx hardware.
Broadcom has released drivers for various subsets of their BCM43xx hardware, often under different licenses, and with more or less documentation, register offsets/descriptions, etc. It can be helpful to review the different source drops for register constants and descriptive comments when investigating poor or undocumented components:
- linux brcm80211 driver release
linux-staging brcm80211 driver release. This source release by Broadcom contains additional defines/constants, and more of the code is ISC-licensed.
Additionally, Linux also includes non-Broadcom GPL drivers covering a partially overlapping set of supported hardware:
- ssb (Sonics) bus driver.
- bcma (AMBA) bus driver. This duplicates a fair bit of the ssb driver's code.
- b43 reverse-engineered bcm43xx Wi-Fi driver.
For more general background information on SoC interconnects (and specifically, AMBA, Sonics, and OCP), On-Chip Communication Architectures: System on Chip Interconnect is a decent (if light) reference.
Broadcom Patent: Low-power operation of systems requiring low-latency and high-throughput: http://www.google.com/patents/US20050232218