Poison By Address

Memory and Peripheral Protection Unit for PL Isolation in Zynq UltraScale+ Devices (XAPP1353)

Document ID
XAPP1353
Release Date
2022-05-04
Revision
1.1 English

Poison-by-Address is enabled by default in the XMPU_PL CTRL control register. This causes a poisoned transaction to be redirected to either an internal or external sink. If external sink is selected, then the poisoned transaction is redirected to the address specified in the POISON register. As with the region start and end registers, the poison register is 256B aligned and specifies the upper 32 bits of the 40-bit address[39:8].

Internal Sink is enabled by default and causes the poisoned transaction to be redirected to a hidden peripheral inside the core.

Note: The internal sink is not visible to, or address mapped, in the system.

DECERR (decode error) is the default setting in the CTRL register. The DECERR will likely result in an EXCEPTION in the processor that receives the response. Exception Handling should be installed in the application to avoid hanging the processor.

The data that is written to the internal sink is not stored and gets lost. The external sink option exists in the event that the designer wishes to construct their own SINK peripheral in order to capture additional information from the transaction.

Table 1. SINK AXI Response
AXI Response Encoding
RRESP[1:0] BRESP[1:0] Response Description
0 OKAY OK
1 EXOKAY Exclusive OK
2 SLVERR Slave Error
3 DECERR 1 Decode Error
  1. Default