NetXtreme Legacy Interrupt Model
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 231
b. Update the previous consumer index (i.e., next call) to the value of the status block consumer index.
7.
Compare the current value of the status tag to the saved value of the status tag. Flush the status block (i.e.,
flush status blocks cached by intermediate PCI bridges).
8.
Check the update bit in the status word of the status block. If the update bit is asserted, then new data has
been DMAed to the host.
a. Repeat steps 5 and 6.
9.
Check error bit in status word. The driver may check the state machine/FTQ status registers for various
attentions.
10.
Reenable interrupts. When the “status tagged” status mode bit of the miscellaneous host control register
(see
“Miscellaneous Host Control Register (offset: 0x68)” on page 282
) is set to 1, write the saved status tag
to the upper 8 bits of Interrupt Mailbox 0, and 0 to the remaining bits (23 down to 0) to indicate that the ISR
is finished processing Rx and Tx. Otherwise write 0 to Interrupt Mailbox 0 register. This step also clears
existing interrupts.
Legacy Status TAGGING Mode
This mode is enabled by setting the “status tagged” mode bit of the miscellaneous host control register (0x68).
When enabled, a unique 8-bit tag value is inserted into the status block status tag at location [7:0]. The status
tag can be returned to the [31:24] field of the INT mailbox register by the driver. When the mailbox register field
[23:0] is written with a zero value, the tag field of the mailbox 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, then the controller triggers another interrupt immediately.