Receive Producer Ring
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 92
Management of Rx Producer Rings with Mailbox Registers and
Status Block
Status Block
The host software manages the producer rings through the Mailbox registers and by using the status block. It
does this by writing to the Mail Box registers when a BD is available to DMA to the Ethernet controller and
reading the status block to see how many BDs have been consumed by the Ethernet controller. The status block
can be seen in
The status block is controlled and updated by the Ethernet controller. The status block in host memory is
constantly updated through a DMA copy by the Ethernet controller from an internal status block. The updates
occur at specific intervals and host coalescence conditions that are specified by host software during
initialization of the Ethernet controller. The registers for setting the intervals and conditions are in the Host
Coalescing Control registers (see
) starting at memory offset 0x3c00. The
Ethernet controller DMAs an updated status block to the 32-bit address that is set by the host software in the
Host Coalescing Control registers, 0x3c38.
Among other status, the status block displays the last 16-bit value, BD index that was DMAed to the Ethernet
controller from receive producer ring. The Ethernet controller updates these indices as the recipient or consumer
of the BD from the producer rings.
Mailbox
The host software is responsible for writing to the Mailbox registers (see
) when a BD is available from
the producer rings for use by the Ethernet controller. Host software should use the high-priority mailbox region
from 0x200–0x3FF for host standard and the low-priority mailbox region from 0x5800–0x59FF for indirect
register access mode.
The Mailbox registers (starting at memory offset 0x200 for host standard and offset 0x5800 for indirect mode)
contain the following receive producer index register.
Receive BD Producer Ring Producer Index
• Host standard: memory offset 0x268–0x26F
• Indirect mode: memory offset 0x5868–0x586F
Table 20: Mailbox Registers
Offset
(High-Priority
Mailboxes for
Host
Standard Mode)
Offset
(Low-Priority
Mailboxes for
Indirect Mode)
Register
Access
0x200–0x207
0x5800–0x5807
Interrupt Mailbox 0
RW
0x208–0x20F
0x5808–0x580F
Interrupt Mailbox 1
RW
0x268–0x26F
0x5868–0x586F
Receive BD Standard Producer Ring Producer Index RW
0x280–0x287
0x5880–0x5887
Receive BD Return Ring 1 Consumer Index
RW