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
).
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 |