Descriptor Rings
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 74
Figure 12: Transmit Ring Data Structure Architecture Diagram
Host Memory
1-(64K-1) Bytes
Host Buffer
Send Host BD
Ring Control Block
1st
Host Ring Address
max_len
NIC Ring Address
flags
Host Send Ring #1
Cons
Prod
RCB
Status Word
unused
RX Prod #1
RX std cons
RX Prod #2
Unused
Status Block
Unused
Unused
TX Cons
RX Prod #4
Mailbox Registers
TX Host Ring Prod
Status Block (80 bytes)
The Status block resides in the NIC
memory space and is periodically
DMA'd to the host when the TX/RX
coalescing timers expire, or when the
RX/TX max coalesced frames
thresholds are met. Software can
examine the TX consumer indices in
the status block to determine which
packets have been sent by the
hardware.
The mailbox registers reside
on-chip starting at offset 0x300.
Each mailbox register is 64 bits
wide. Writing the lower 32 bits
triggers an event in the HW.
SW updates the TX Host Ring
producer index to indicate that
there are buffer descriptors ready
for the HW to process.
Host Address
length
rsvd for firmware
Send Buffer Descriptor
flags
VLAN tag
Data Structures in the host
Data Structures kept on-chip
Transmit Ring Data Scructure is located in the host (as shown below), and the device will keep a local (not shown) copy of the rings.
RX Prod #3