Zynq UltraScale+ Isolation Configuration
Table of Contents
Defining Subsystems
Subsystem Configurations Menus
Vivado isolation configuration is to configure subsystems only, but not isolation. The Vivado menu used to define a subsystem can be reached by selecting Switch To Advanced Mode -> isolation configuration and is shown below. When isolation configuration is selected, PMU subsystem is defined by default.
In the isolation configuration menu,
Check EnableIsolation to start subsystem definition. Right click and select Add New Subsystem
Check Enable Secure Debug to debug from jtag
Right click in the empty area of the isolation configuration menu to bring up the submenu to Add New Subsystem or to add master and slaves to an existing subsystem.
The subsystems defined with isolation configuration are exported as part of the hdf file and
Example Subsytems
APU Subsystem Only
For an APU subsystem running Linux, in addition to the default pmu subsystem, two APU subsystem are required, a secure APU system for running FSBL and ATF and another non-secure APU subsystem for running Linux. The required subsystems and their components are summarized in the table below.
Subsystem | Description |
PMU subsystem | Always required and configured by default All peripherals belonging to APU and RPU need to be in PMU subsystem configuration too for idling them during warm restart
|
APU secure | Required for FSBL and ATF
|
APU non-secure | Required as Linux is non-secure.
|
Example
Below is an example for APU only subsystem definition in the isolation configuration menu. The subsystem boots from SD1 with ATF residing in OCM, running non-secure Linux which has access to all the peripherals in the subsystem.
APU and RPU split non-secure
The two RPUs are running in split mode, each requiring its own subsystem configuration. The subsystem required for this configuration are PMU, APU secure, APU non-secure, RPU0 and RPU1. The RPU are non-secure in order for APU to start/stop RPU from Linux. Linux's (APU non-secure) memory map includes that of the shared DDR memory and TCM in order to allow Linux APU to load the RPU firmware. In addition, RPU control registers are include to allow APU to configure RPU operations mode from Linux.
PMU subsystem (default) | Always required and configured by default All peripherals belonging to APU and RPU need to be in PMU subsystem configuration too for idling them during warm restart
|
APU secure (Same as APU only) | Required for FSBL and ATF
|
APU non-secure | Required as Linux is non-secure.
|
RPU0 non-secure: | Non-secure only
|
RPU1 non-secure: | Non-secure only
|
Example
This is an example of APU and RPU subsystems with RPU in split mode booting from SD1 with ATF residing in OCM. Linux non-secure has access to all the peripherals with TTC2, TTC3 and UART0 is shared with RPUs
APU and RPU Locksetp non-secure
The two RPUs are running in locksetp mode, so only one RPU subsystem configuration is needed. The subsystem required for this configuration are PMU, APU secure, APU non-secure, RPU0. The RPU are non-secure in order for APU to start/stop RPU from Linux. Linux's (APU non-secure) memory map includes that of the shared DDR memory and all TCMs in order to allow Linux APU to load the RPU firmware. In addition, RPU control registers are include to allow APU to configure RPU operations mode from Linux.
PMU subsystem, APU Secure and APU non-secure subsystem are the same as those of the APU and RPU split non-secure. The only difference is the RPU subsystem as shown in the table below
RPU non- |
|
Example
This is an example of APU and RPU subsystems with RPU in lockstep mode booting from SD1 with ATF residing in OCM. Linux non-secure has access to all the peripherals with TTC2, TTC3 and UART0 is shared with RPUs
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy