Recovery - Recovery - 1.2 English - PG293

AXI Protocol Firewall IP LogiCORE IP Product Guide (PG293)

Document ID
PG293
Release Date
2025-08-29
Version
1.2 English

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:

  1. 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_error output 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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_bvalid becomes asserted).
  6. Resume issuing new transactions to the firewall SI.