Common Data Structures
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 69
S e c t i o n 4 : C o m m o n D a t a S t r u c t u r e s
Theory of Operation
Several device data structures are common to the receive, transmit, and interrupt processing routines. These
data structures are hardware-related and are used by device drivers to read and update state information.
Descriptor Rings
In order to send and receive packets, the host and the controller use a series of shared buffer descriptor (BD)
rings to communicate information back and forth. Each ring is composed of an array of buffer descriptors that
reside in host memory. These buffer descriptors point to either send or receive packet data buffers. The largest
amount of data that a single buffer may contain is 65535 (64K-1) bytes (The length field in BD is 16 bits). Multiple
descriptors can be used per packet in order to achieve scatter-gather DMA capabilities.
There are three main types of descriptor rings:
• Send Rings
• Receive Producer Rings
• Receive Return Rings
The TX/RX ring base requires an 8 byte alignment. The receive buffer address (recorded in SBD/RBD) cannot
cross 4G.
Note:
The maximum number of Send BDs for a single packet is (0.75)*(ring size).