cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
789 Views
Registered: ‎05-24-2018

XGpio_SetDataDirection hangs

I am using Vivado 2018.1.

On a ZC706 evaluation board I have created a project that implements AXI GPIO blocks to pass data between the PS and PL (both directions). I am now trying to duplicate this design on a ZedBoard.

When targeting a ZedBoard the XGpio_SetDataDirection function does not seem to work. All programs using this function hang. That includes the xgpio_example functions provided.

The function seems to hang when writeReg calls Xil_Out32 with argument 0x41200004. A hard power cycle is required once this failure occurs. Running a new application without power cycling results in the following error:

Error while launching program:
Memory write error at 0x100000. APB AP transaction error, DAP status f0000021

Again, everything workc on the ZC706 board, just not on a ZedBoard (I've tried several with the same result).

Restarting SDK, or creating new projects from scratch has no effect.

 

0 Kudos
5 Replies
Highlighted
Moderator
Moderator
716 Views
Registered: ‎11-09-2015

HI @jgbaldw ,

Some checks you can do:

  • The AXI GPIO is properly clocked (you can display the clock on a LED to check)
  • The AXI GPIO is not held under reset
  • Add an ILA between at the AXI4-Lite interface to see if you are getting the instruction

Regards,


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
691 Views
Registered: ‎02-04-2019

jgbaldw,

Not sure if this will help but I was experiencing the same problem on my ZCU102 board as well where my program would hang on that same function after being called from XGpio_SetDataDirection. Ultimately, what I found to be my issue was that my workspace had become out of sync with the project and I think was getting confused about where it was calling functions from. 

I would try refreshing your workspace and then rebuilding the project to see if that will alleviate the issue. I have had this problem occur with two different projects I've tried to build and refreshing alone worked once but the other time this wouldn't fix the issue but rebuilding the entire project from scratch got it to work. This occurs a majority of the time for me when I try to add on to existing projects in Vivado, which is pretty annoying. 

Here's another community thread that helped lead me in the direction of the workspace being out of Sync. Hopefully this helps! 

https://forums.xilinx.com/t5/AXI-Infrastructure/XGpio-SetDataDirection-hangs/td-p/858167

0 Kudos
Highlighted
Visitor
Visitor
687 Views
Registered: ‎05-24-2018

Thanks @dylanmcguire119 . I had run across that solution, but it didn't seem to work for me. I've tried starting projects from scratch, and every permutation of restarting Vivado/SDK I can think of. I've also tried using only single channel or dual channel GPIO's. The results are always the same: success with a ZC706 board, and failure with a ZedBoard.

0 Kudos
Highlighted
Moderator
Moderator
662 Views
Registered: ‎11-09-2015

HI @jgbaldw ,

Also did you make sure you are not configured a all inputs or all outputs in the AXI GPIO GUI?


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Highlighted
Visitor
Visitor
652 Views
Registered: ‎05-24-2018

@florentw, I've tried different combinations of input and output. Again, a design which works on a ZYNQ XC7Z045 (on the ZC 706 board), does not work on a ZYNQ XC7Z020 (on a Zedboard).

0 Kudos