Receive Interface; Figure 26: Send Driver Interface - Broadcom NetXtreme/NetLink BCM5718 Series Programmer's Manual

Table of Contents

Advertisement

BCM5718 Programmer's Guide
The BCM5718 family supports only host Send Buffer
descriptors. The transmit ring is located in the host (as
shown below), and the device will keep a local (not
shown) copy of the ring.
Host Memory
Host Buffer n ( <= 9622B)
Host Buffer n+1
Status Block (24 bytes)
The Status block resides in the NIC memory space
and is periodically DMA'd to the host whenever
the TX/RX coalescing timers expire, or whenever
the RX/TX max coalesced frames thresholds are
met. SW can examine the TX consumer indices in
the status block to determine which packets have
been sent by the HW.

Receive Interface

As mentioned previously, the receive side has added another producer ring called the jumbo producer ring. This
means the driver maintains two buffer descriptor rings (receive producer rings) that provide free data buffer
space into which the controller can place received frame data. The production of receive-side buffers by the
driver is communicated to the device via the rEceive Producer Ring Index(s) Mailbox registers. An update of a
receive BD ring producer index mailbox triggers the device to begin DMA of the corresponding buffer
descriptor(s). The consumption of receive side buffers by the device is communicated to the driver via the
receive consumer index, which is returned via the status block and periodically DMAed to the host by the
controller.
The controller fetches RX BDs in anticipation of RX frames and caches the BDs in the controller. The cached
BDs are stored in the Misc BD Memory. There is a set of rules that govern placement of packets in buffers:
All standard sized frames, that is, frames less than or equal to the Max Frame Size field of the standard
RCB, typically 1522 bytes or less, are placed in buffers retrieved from the RX standard producer ring.
Hence the host must ensure that buffers pointed to by the standard BDs are at least of that size.
In case the host creates a standard ring buffer that is smaller than Max Frame Size and an RX frame larger
than the buffer size (but <= Max Frame Size) arrives, the controller attempts to place the frame in such a
buffer and ends up truncating the frame.
RX frames larger than Max Frame Size are placed in buffers retrieved from the RX jumbo producer ring.
Broadcom
®
January 29, 2016 • 5718-PG108-R

Figure 26: Send Driver Interface

Data Structures in the host
Send Buffer Descriptor
31
0
Host Address
length
flags
rsvd for firmware
VLAN tag
Send Host BD
Send Host BD
Status Block
31
0
Status Word
Status Tag
RX Std Cons
Rcv Return #1
Rcv Return #2
Rcv Return #3
TX Cons Index
Rcv Return #0
RX Jumbo Cons
Resvd
Data Structures kept on-chip
Host Send Ring
Cons
1st
Prod
Mailbox Registers
63
TX Host Ring Prod Index
references a specific BD in the
ring
The mailbox registers reside on-chip starting at offset
0x5800. Each mailbox register is 64 bits wide. Wrting the
lower 32 bits, triggers and event in the HW. SW updates the
TX Host Ring producer index to indicate that that there are
buffer descriptors ready for the HW to process.
Jumbo Frames
Note: The RCB's host ring address field points to the first
element of the Ring in the host.
Send Ring Control
Block
0
31
Host Ring Address
max_len
flags
Unused
0
TX Host Ring Prod Index
Page 126

Hide quick links:

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the NetXtreme/NetLink BCM5718 Series and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

This manual is also suitable for:

Netxtreme/netlink bcm5717Netxtreme/netlink bcm5718Netxtreme/netlink bcm5719Netxtreme/netlink bcm5720

Table of Contents