MSI-X Plumbing
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 258
MSI-X One Shot Mode
The BCM5718 family introduces a new method of MSI-X acknowledgment known as the One Shot mode. When
this mode is set, an ISR is asked to skip the interrupt acknowledgment step in which it would otherwise write a
nonzero value to the respective INT MailBox. This is sensible because MSI-X vector messages are equivalent
to edge-triggered non-shared interrupt events; therefore, there is no need for ISR to explicitly acknowledge the
event.
One Shot mode is enabled by default and could be disabled by writing a 1 to the register bit 0x6000[5]. the One
Shot mode setting has no effect on the Line Interrupt or MSI modes.
The controller hardware stores a nonzero value to an INT Mailbox as soon as a respective MSI-X Message DMA
is completed at the EP-RC (PCIe Core) interface.
Coalesce Now or Forced Update
There is a Coalesce Now bit in the legacy Host Coalescing block, 0x3C00[3]. If set, the Host Coalescing block
updates the Status Block immediately and sends an interrupt to host. This bit is self-clearing.
In the BCM5718 family, this bit retains the same functionality and associates with Status-Block0 and Vector#0
when MSI-X is enabled. Moreover, 16 additional Coalesce Now bits replicate the same function associated to
vector numbers 1 through 16. Below are the definitions of the bits.
• 0x3C00[3]: Coalesce Now (When INTx or MSI Enabled)
• 0x3C00[3]: Coalesce vector#0 Now (When MSI-X Enabled)
• 0x3C00[13]: Coalesce vector#1 Now (When MSI-X Enabled and Multivector mode Enabled)
• 0x3C00[14]: Coalesce vector#2 Now (When MSI-X Enabled and Multivector mode Enabled)
• 0x3C00[15]: Coalesce vector#3 Now (When MSI-X Enabled and Multivector mode Enabled)
• 0x3C00[16]: Coalesce vector#4 Now (When MSI-X Enabled and Multivector mode Enabled)
• 0x3C00[17]: Coalesce vector#5 Now (When MSI-X Enabled and Multivector mode Enabled)
• ………
• 0x3C00[28]: Coalesce vector#16 Now (When MSI-X Enabled and Multivector mode Enabled)
Misc Coalescing Controls
There are a few Host Coalescing controls in the legacy NetXtreme design in the HOST COALESCING MODE
REGISTER (0x3C00) and HOST CONTROL REGISTER (0x68). Some of these controls apply equally to the
newly added HC parameters or MSI-X feature in general, and some do not apply equally. Such controls are
listed here for clarity:
Broadcom Tagged Status Mode (0x68[9])
Enabled by setting the Status Tagged Status Mode bit of the Miscellaneous Host Control register. When enabled,
a unique eight-bit tag value is inserted into the Status Block Status Tag at location 7:0. The Status Tag can be
returned to the Mailbox 0 register at location 31:24 by the host driver. When the Mailbox 0 register field 23:0 is
written with a zero value, the tag field of the Mailbox 0 register is compared with the tag field of the last Status
Block to be DMAed to the host. If the tag returned is not equivalent to the tag of the first Status Block DMAed,
the interrupt status is entered. This bit, 0x68[7], applies to all 17 MSI-X vectors.