A block condition can be cleared either
through an AXI4-Lite control interface unblock request or
global aresetn. If unblock is requested through the control
interface while a BUSY bit is deasserted (recommended),
the firewall unblocks immediately. If unblock is requested while the read/write BUSY bit is
asserted and while the corresponding read/write
traffic is blocked (not recommended), the IP waits until autonomous flushing is completed
for any remaining outstanding read/write transactions, then the block is immediately
released and new command transfers begin propagating from SI to MI.
Assertion of the bvalid output on the
control interface after writing the unblock request guarantees that it is safe to issue a
new command to the SI that propagates to the MI. An unblock request has no effect on
read/write channels that are not blocked.
For MI-side mode, the downstream network must be in a state in which it can accept new commands before the firewall is unblocked. This is typically done by locally resetting all downstream AXI IP.
For SI-side mode, the upstream network must be in a state in which it can begin issuing new commands (with no old transactions pending) before the firewall is unblocked. This is typically done by locally resetting all upstream AXI IP.
The global aresetn on the firewall IP resets the entire
IP to the unblocked state. When the firewall IP is reset, both the
upstream and downstream networks should be reset concurrently.
Command propagation commences soon after aresetn is deasserted.
The recommended recovery sequence is as follows:
- Detect a blocked read and/or write condition by either
sampling the fault status bits of the appropriate MI-Side Fault Status Register/SI-Side Fault Status Register or
responding to an interrupt triggered by the
mi/si_r/w_erroroutput signals.Note: The BUSY bits in the MI-Side Fault Status Register/SI-Side Fault Status Register can transition during normal operation and do not indicate that any fault has occurred. - For MI-side mode, discontinue further issuing of both read and write transactions into the firewall SI. If necessary, wait for any latency to lapse for new transactions to reach the firewall SI. Do this regardless of whether either the write or read traffic remains unblocked.
- Wait for both read and write BUSY bits to become deasserted in the MI-Side Fault Status Register/SI-Side Fault Status Register. Do this regardless of whether the write or read traffic remains unblocked.
- Reset all devices on the side of
the firewall being monitored for faults and for a minimum recommended duration of 16 clock
cycles, then release the reset. For MI-side mode, if necessary, wait for any latency to
lapse for any outstanding R or B channel response transfers to reach the firewall MI.Note: It is not important to wait until the connected devices recover from reset.
- Request firewall unblock by writing to the
appropriate MI-Side Unblock Control Register/SI-Side Unblock Control Register. Wait for
the write to complete (
s_axi_ctl_bvalidbecomes asserted). - Resume issuing new transactions to the firewall SI.