Receive Return Rings
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 94
Management of Return Rings with Mailbox Registers and Status
Block
The return rings are managed by the host using the Mailbox registers and status block.
When a packet is received from the LAN, the Ethernet controller DMAs the packet to a location in the host, and
then DMAs the related BD to a return ring. As the producer of this packet to the host, the Ethernet controller
updates the status block producer indices for the related return ring (i.e., return ring 1 to return ring 4 that was
DMAed the BD received packet). These return ring indices can then be read by the host software to determine
the last BD index value of a particular ring that has information of the last received packet.
As the consumer of the received packet, the host software must update the return ring consumer indices in
Mailbox registers Receive BD Return Ring 1 Consumer Index (memory offset 0x280–0x287 for host standard
and 0x5880–0x5887 for indirect mode) through Receive BD Return Ring 4 Consumer Index.
Host Buffer Allocation
The allocation of memory in the host is dependent on the operating system in which the controller is being used.
There are two crucial items:
• The use of non-cached and physically contiguous memory is best for adapter performance.
• Physical memory mapping is required for the controller’s internal copies of logical host memory.