UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
300 Views
Registered: ‎11-19-2018

Using ILA and Linux

Hi,

I have a PYNQ board running Linux booted from an SD. The PL is configured to use an AXI GPIO to communicate with the LEDs (a simple hardware system). I have also inserted the ILA for hardware debugging. I am using Vivado and SDK 2017.1

I have verified the PL functionality running an standalone application and debugging it using cross-triggering in SDK in both directions (PL to PS and PS to PL). Everything works fine.

The problem comes when I try to cross-trigger in a Linux environment. I can certainly use the hardware manager to run the ILA core and capture data when a condition is met. Even though, this condition should trigger a signal (trigger in to the PS) and stop the processors. I cannot get to achieve this. The SDK system debugger doesn't have support for cross-triggering when debugging Linux applications through the tcf-agent. Moreover, when debugging a Linux application through SDK and a breakpoint is reached, it doesn't cross-trigger the ILA.

I imagine this two problems come from not enabling the cross-trigger as in a standalone application through the system debugger, but I can't get to find where I should enable this in the Linux environment to function in a similar way as an standalone application (cross-triggering in both directions). Maybe in the FSBL?

Another problem arises when debugging a Linux application through the system debugger in SDK. Some breakpoints are skipped. I have noticed that if the breakpoints are closer together they function correctly, but the more separate they are the more probability to be skipped.

I am more concerned about the first two problems (cross-triggering from PS-PL and PL-PS). Does anyone know anything about this?

Thank you all in advance.

 

0 Kudos
3 Replies
283 Views
Registered: ‎11-19-2018

Re: Using ILA and Linux

I moved this post to: embedded systems->embedded Linux
https://forums.xilinx.com/t5/Embedded-Linux/Using-ILA-and-Linux-cross-trigger/td-p/914942
I don't know if it is better there or here, as it could be a problem of the tools not supporting this or Linux needing to be configured in another way.
0 Kudos
Moderator
Moderator
174 Views
Registered: ‎02-09-2017

Re: Using ILA and Linux

Hi @alberto.ortiz,

 

Have you checked the document Embedded Processor Hardware Design - UG940. There are several configurations that need to be made in SDK and Vivado to enable this Fabric to PS cross-triggering.

In the document above, Lab 2 explains the whole configuration process. Please go through the whole Lab2 tutorial, as it shows the check-boxes that need to be checked to enable it, and also shows the ILA settings that need to be configured. 

On page 63, it finally shows the Fabric to PS in action.

Please let us know if you have any question.

Thanks,

Andre Guerrero

Product Applications Engineer

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
164 Views
Registered: ‎11-19-2018

Re: Using ILA and Linux

Hi,

Yes, I already followed that tutorial, which targets cross-triggering in standalone applications. Everything worked fine

The problem comes when trying to cross-trigger from a Linux application running in the ARM processors to the PL. As you can see in the tutorial you mention, when setting the system debugger in the SDK, some configuration is done to set up the cross-triggering (probably to control the CoreSight signals adequately).

When debugging a Linux application you cannot set this configuration in the SDK, probably because a driver is needed in the Linux Kernel of the device (Zynq) to use the CTI (Cross Trigger Interface) of CoreSight (as well as setting the correct options in the device tree).

I have not found any tutorial or explanation in the way to set up cross-triggering from Linux to PL (not from standalone), but found there is no actual driver to control the CTI.

I don't know if there is other possible solutions to achieve this, as it is necessary for me to do it from a Linux OS.

0 Kudos