Jumbo Frames
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 125
The status tag field contains a unique 8-bit tag value in bits 7:0 when the status tagged status mode bit of the
miscellaneous Host Control register 0x68 is set to 1. The status tag can be returned to mailbox 0 register 0x200
in field 31:24 by the host driver. When the remaining mailbox 0 register bits 23:0 are written to 0, the tag field of
mailbox 0 is compared with the tag field of the last status block to be DMAed into host memory. If the tag returned
is not equivalent to the tag of the last status block DMAed to the host, the interrupt state is entered.
Receive return ring 0 is the default return ring. If RSS is disabled all packets are assigned to this default ring.
There is no status block data structure in the controller memory space, but the host can access the current index
through the register space.
Misc BD Memory
The Misc BD memory has been increased to 10 KB. The miscellaneous BD memory and the TX MBUF memory
are physically the same memory, but a partition is hardwired. The miscellaneous BD memory holds four
structures:
• On-chip send BD cache
• On-chip standard receive BD cache
• On-chip jumbo receive BD cache
• Software gencomm area (driver/firmware communication shared memory area)
Device Driver Interface
There are minimal driver interface modifications to support jumbo frames.
Send Interface
The driver essentially does not see any change in the send interface due to the jumbo frame feature. The only
difference is that the stack is now allowed to construct larger frames (i.e., up to 9622 bytes long) out of send
buffers.
As in the case with previous controllers, the driver maintains a buffer descriptor ring (send ring), which allows
for the “gather” management of transmit frame data. The production of send side packets by the driver is
communicated to the controller via the Send Producer Ring Index Mailbox register. An update of the send BD
ring producer index mailbox triggers the controller to begin DMA of the corresponding buffer descriptor. The
consumption of send side packets by the controller is communicated back to the driver via the send consumer
index, which is returned in the status block and periodically DMAed to the host by the controller.
A conceptual diagram of the Send Interface is shown in
below.
Note:
The controller is able to handle a single send buffer of length > 4K bytes and all the way up to
9622 bytes.