Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 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 ===== * [[dev/bhnd(4)/siba|SIBA]] (used in early BHND devices) * [[dev/bhnd(4)/bcma|BCMA]] ===== Common Core Drivers ===== * [[dev/bhnd(4)/cores/chipc|ChipCommon]] * [[dev/bhnd(4)/cores/pci|PCI and PCIe-G1]] * [[dev/bhnd(4)/cores/pcie2|PCIe-G2]] ===== Additional Hardware Documentation ===== * [[dev/bhnd(4)/pmu|Power Management]] ==== External Documentation ==== The BCM440X appears to share common IP with Broadcom's Sonics-based BCM43xx hardware. The [[https://www.broadcom.com/collateral/pg/440X-PG02-R.pdf|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 [[http://bcm-v4.sipsolutions.net/|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: * android [[https://android.googlesource.com/kernel/common.git/+/bcmdhd-3.10/drivers/net/wireless/bcmdhd/|bcmhd]] * linux brcm80211 driver release * linux-staging [[https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/tree/drivers/staging/brcm80211?h=v2.6.37|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), [[http://www.amazon.com/On-Chip-Communication-Architectures-Interconnect-Systems/dp/012373892X|On-Chip Communication Architectures: System on Chip Interconnect]] is a decent (if light) reference. ==== Patent References ==== * Broadcom Patent: Low-power operation of systems requiring low-latency and high-throughput: http://www.google.com/patents/US20050232218 ===== TODO ===== * TODO :) dev/bhnd_4.txt Last modified: 2020/12/15 01:41by SashaVigole