bhnd(4) - Broadcom Home Networking Division interconnect bus driver

Introduction

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.

Supported Interconnects

Common Core Drivers

Additional Hardware Documentation

External 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:

Additionally, Linux also includes non-Broadcom GPL drivers covering a partially overlapping set of supported hardware:

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.

Patent References

TODO

dev/bhnd(4) (last edited 2020-12-15T01:41:34+0000 by SashaVigole)