The AXI Firewall IP internally records all outstanding
transactions and beat counts (it is not necessary to track ID threads in SI-side mode). When
the IP activates a block for a read or write fault, the SI-side read or write response-channel
valid output is deasserted and no further response transfers propagate to
the SI.
s_axi_{r,b}valid without corresponding s_axi_*ready is an AXI protocol violation. However, the affected channels of the
SI are assumed to be in an operationally invalid state when a block occurs, requiring an
upstream reset before returning to normal operation.Upon blocking for a read or write
fault, the IP also asserts the SI-side and MI-side ready output signals on the affected
channels for the duration of the block. No further read or write
commands are issued on the MI-side AR or AW channel.
Once blocked for a write fault, the
firewall autonomously issues protocol-compliant W-channel transfers on the MI for any
outstanding write transactions, in the order in which the prior AW commands were issued,
with the repeating wdata pattern
0xDEADFA11.
The RESPONSE_BUSY bits in the SI-Side Fault Status Register indicate whether there are outstanding transactions that still need to be completed on the MI. The BUSY bits deassert as soon as the outstanding transaction counters decrement to zero upon receiving a completed R or B channel handshake of the last outstanding read/write transaction.
The BUSY bits are not masked while reads or writes remain in normal operating mode. While read or write traffic is blocked, deassertion of the BUSY bit indicates that the autonomous flushing operation of the firewall has completed for read or write. When read or write traffic is in normal operating mode, deassertion of the BUSY bit indicates that all outstanding transactions have completed normally. In either case, observing both the READ_RESPONSE_BUSY and WRITE_RESPONSE_BUSY low indicates that it is safe to reset all upstream (SI-side) devices and request unblocking of the firewall through the control interface.