Difference between revisions of "Xilinx Zynq UltraScalePlus"

From SEGGER Wiki
Jump to: navigation, search
(Sample project)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
  +
The '''Xilinx Zynq UltraScale+''' is a multi-processor system on chip, that contains up to 4 ARM Cortex-A53 application processor cores, 2 ARM Cortex-R5 real-time processor cores and user-programmagble logic (FGPA). It can optionally include ARM Mali-400MP2 graphical processor, H.264/H.265 Video Codec, RF and digital front-end subsystem.
 
__TOC__
 
__TOC__
   
  +
==Multi-Core Support==
This article describes device specifics of the Xilinx Zynq UltraScale+ series devices.
 
  +
Before proceeding with this article, please check out the generic article regarding Multi-Core debugging [[Multi-Core_Debugging | here]].<br>
  +
The Zynq UltraScale+ family comes with a variety of multi-core options.<br>
  +
The device contains 2 Microblaze cores (CSU and PMU) that implements security and platform management features. These cores are responsible for boot and system configuration processes.
   
  +
{| class="seggertable"
= Families =
 
  +
|-
The Zynq UltraScale+ series consists of the following families:
 
  +
! Core || J-Link Support
* Zynq UltraScale+ CG (2x Cortex-A53, 2x Cortex-R5)
 
  +
|-
* Zynq UltraScale+ DR (4x Cortex-A53, 2x Cortex-R5)
 
* Zynq UltraScale+ EG (4x Cortex-A53, 2x Cortex-R5)
+
| 4x Cortex-A53 || style="text-align:center;"| {{YES}}
  +
|-
* Zynq UltraScale+ EV (4x Cortex-A53, 2x Cortex-R5)
 
  +
| 2x Cortex-R5 || style="text-align:center;"| {{YES}}
 
  +
|-
= Debugging the Cortex-R5 =
 
  +
| 1x Microblaze CSU || style="text-align:center;"| {{NO}}
  +
|-
  +
| 1x Microblaze PMU || style="text-align:center;"| {{NO}}
  +
|-
  +
| 1x Mali GPU || style="text-align:center;"| {{NO}}
  +
|}
  +
In below, the debug related multi-core behavior of the J-Link is described for each core:
  +
===Cortex-A53===
  +
====Init/Setup====
  +
In order to connect to and debug one of the available Cortex-A53 on the UltraScale+ series, an UltraScale+ device with ''XCZU..._A53_n'' must be selected. For a list of supported device names, please refer to the [https://www.segger.com/downloads/supported-devices.php list of supported devices] on the SEGGER website.
  +
Before releasing the core from reset J-Link loads an "Infinite loop" code at the 0xFFFF0000 address.
  +
====Reset====
  +
When connecting to the Cortex-A53, J-Link will by default reset the core it connects to and halt it via vector catch. In order to alter this behavior, please get in touch with SEGGER support to get the sources of the connect sequence for this device.
  +
When issuing a reset via J-Link (e.g. by hitting the reset button in the IDE), J-Link will only reset the Cortex-A53 core it is connected to. No peripherals or other cores will be reset.
  +
====Attach====
  +
Attach is not supported because the J-Link initializes certain RAM regions by default and supports JTAG boot mode only.
  +
===Cortex-R5===
  +
====Init/Setup====
 
In order to connect to and debug one of the available Cortex-R5 on the UltraScale+ series, an UltraScale+ device with ''XCZU..._R5_0'' must be selected. For a list of supported device names, please refer to the [https://www.segger.com/downloads/supported-devices.php list of supported devices] on the SEGGER website.
 
In order to connect to and debug one of the available Cortex-R5 on the UltraScale+ series, an UltraScale+ device with ''XCZU..._R5_0'' must be selected. For a list of supported device names, please refer to the [https://www.segger.com/downloads/supported-devices.php list of supported devices] on the SEGGER website.
  +
====Reset====
 
  +
When connecting to the Cortex-R5, J-Link will by default reset the core it connects to and halt it via vector catch. In order to alter this behavior, please get in touch with SEGGER support to get the sources of the connect sequence for this device.
== Software requirements ==
 
J-Link software [https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack V6.45c] or later is required. Older versions will not work.
 
 
== Connect ==
 
When connecting to the Cortex-R5, J-Link will by default reset the Cortex-R5 core it connects to and halt it via vector catch. In order to alter this behavior, please get in touch with SEGGER support to get the sources of the connect sequence for this device.
 
 
== Reset ==
 
 
When issuing a reset via J-Link (e.g. by hitting the reset button in the IDE), J-Link will only reset the Cortex-R5 core it is connected to. No peripherals or other cores will be reset.
 
When issuing a reset via J-Link (e.g. by hitting the reset button in the IDE), J-Link will only reset the Cortex-R5 core it is connected to. No peripherals or other cores will be reset.
  +
====Attach====
 
  +
Attach is not supported because the J-Link initializes certain RAM regions by default and supports JTAG boot mode only.
== Sample project ==
 
  +
==Limitations==
  +
J-Link only supports JTAG-boot mode, as ARM DAP access can be enabled externaly. Cortex-A53 and Cortex-R5 are held in reset by default in this mode.<br>
  +
JTAG access to the ARM DAP is enabled by J-Link before connecting to the target.<br>
  +
J-Link supports only connection via the PS JTAG interface.
  +
==Example Application==
  +
===Cortex-R5 core===
 
The following example project is for SEGGER Embedded Studio V4.12 and later. It loads a simple Cnt++ loop application into the OCM RAM of the Zynq UltraScale+.
 
The following example project is for SEGGER Embedded Studio V4.12 and later. It loads a simple Cnt++ loop application into the OCM RAM of the Zynq UltraScale+.
  +
[[File:Xilinx_XCZU3EG_R5_0_CntLoop_ES.zip]]
 
[[File:Xilinx_XCZU3EG_R5_0_CntLoop_ES.zip | Download]]
 
 
= Debugging the Cortex-A53 =
 
TBD.
 

Latest revision as of 11:46, 24 May 2024

The Xilinx Zynq UltraScale+ is a multi-processor system on chip, that contains up to 4 ARM Cortex-A53 application processor cores, 2 ARM Cortex-R5 real-time processor cores and user-programmagble logic (FGPA). It can optionally include ARM Mali-400MP2 graphical processor, H.264/H.265 Video Codec, RF and digital front-end subsystem.

Multi-Core Support

Before proceeding with this article, please check out the generic article regarding Multi-Core debugging here.
The Zynq UltraScale+ family comes with a variety of multi-core options.
The device contains 2 Microblaze cores (CSU and PMU) that implements security and platform management features. These cores are responsible for boot and system configuration processes.

Core J-Link Support
4x Cortex-A53 YES.png
2x Cortex-R5 YES.png
1x Microblaze CSU NO.png
1x Microblaze PMU NO.png
1x Mali GPU NO.png

In below, the debug related multi-core behavior of the J-Link is described for each core:

Cortex-A53

Init/Setup

In order to connect to and debug one of the available Cortex-A53 on the UltraScale+ series, an UltraScale+ device with XCZU..._A53_n must be selected. For a list of supported device names, please refer to the list of supported devices on the SEGGER website. Before releasing the core from reset J-Link loads an "Infinite loop" code at the 0xFFFF0000 address.

Reset

When connecting to the Cortex-A53, J-Link will by default reset the core it connects to and halt it via vector catch. In order to alter this behavior, please get in touch with SEGGER support to get the sources of the connect sequence for this device. When issuing a reset via J-Link (e.g. by hitting the reset button in the IDE), J-Link will only reset the Cortex-A53 core it is connected to. No peripherals or other cores will be reset.

Attach

Attach is not supported because the J-Link initializes certain RAM regions by default and supports JTAG boot mode only.

Cortex-R5

Init/Setup

In order to connect to and debug one of the available Cortex-R5 on the UltraScale+ series, an UltraScale+ device with XCZU..._R5_0 must be selected. For a list of supported device names, please refer to the list of supported devices on the SEGGER website.

Reset

When connecting to the Cortex-R5, J-Link will by default reset the core it connects to and halt it via vector catch. In order to alter this behavior, please get in touch with SEGGER support to get the sources of the connect sequence for this device. When issuing a reset via J-Link (e.g. by hitting the reset button in the IDE), J-Link will only reset the Cortex-R5 core it is connected to. No peripherals or other cores will be reset.

Attach

Attach is not supported because the J-Link initializes certain RAM regions by default and supports JTAG boot mode only.

Limitations

J-Link only supports JTAG-boot mode, as ARM DAP access can be enabled externaly. Cortex-A53 and Cortex-R5 are held in reset by default in this mode.
JTAG access to the ARM DAP is enabled by J-Link before connecting to the target.
J-Link supports only connection via the PS JTAG interface.

Example Application

Cortex-R5 core

The following example project is for SEGGER Embedded Studio V4.12 and later. It loads a simple Cnt++ loop application into the OCM RAM of the Zynq UltraScale+. File:Xilinx XCZU3EG R5 0 CntLoop ES.zip