Non-Secure Shared Memory & Peripherals

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

The middle two KBs of the PL BRAM and the AXI GPIO are designated as non-secure shared. They must be accessible by both secure and non-secure masters. One way to accomplish this is to designate regions to cover their respective address ranges and list all the masters as authorized. Alternatively, omit defining a region and instead utilize the default CTRL register settings to allow read and write access to undefined ranges.

The following table shows the XMPU_PL configuration for the example design. The MACRO definitions can be found in the zupl_xmpu BSP SW driver (zupl_xmpu_hw.h).

Table 1. XMPU PL Region Definitions
CONTROL MACROS Description
CTRL

XMPU_PL_CTRL_DEFRD +

XMPU_PL_CTRL_DEFWR +

XMPU_PL_CTRL_PSNATTREN +

XMPU_PL_CTRL_PSNADDREN +

XMPU_PL_CTRL_ARSP_DEC

Default Read

Default Write

Poison by Attribute

Poison by Address

Poison Response DECERR

LOCK 1 enable
LOCK_BYPASS

XMPU_PL_MID_RPU0 +

XMPU_PL_MID_PMU

RPU0

PMU

REGION 0
R00_START BRAM BASEADDR BRAM Base Address
R00_END BRAM BASEADDR + 0x03FF Size 1KB
R00_MASTERS

XMPU_PL_MID_RPU0 +

XMPU_PL_MID_PMU

RPU0

PMU

R00_CONFIG

XMPU_PL_REGION_WR_ALLOW +

XMPU_PL_REGION_RD_ALLOW +

XMPU_PL_REGION_ENABLE

Region Write Allow

Region Read Allow

Region Enable

REGION 1
R01_START BRAM BASEADDR + 0x0C00 BRAM Base Address + 3 KB
R01_END BRAM BASEADDR + 0x0FFF Size 1 KB
R01_MASTERS XMPU_PL_MID_APU0 APU
R01_CONFIG

XMPU_PL_REGION_WR_ALLOW +

XMPU_PL_REGION_RD_ALLOW +

XMPU_PL_REGION_ENABLE

Region Write Allow

Region Read Allow

Region Enable