I am working with Vivado 2013.4 on a Ubuntu 12.04 64-bit computer. The target device is a ZedBoard with linaro-precise-developer-20120426-86.
What I want to achieve is to create an IP using HLS, create a bitstream using Vivado, cross-compile a demo program using SDK and use it on the ZedBoard.
All steps seem to work except the last one. The problem is that, apart from the 'Initialize' and 'Release' functions created by the HLS, anything else used freezes the whole system. In other words, although the device is found and opened without an error when a read or write attempt is made on the mmaped memory the system hangs and I have no means to interact with it.
The guides I have been following are
Yet Another Guide to Running Linaro Ubuntu Linux Desktop on Xilinx Zynq on the ZedBoard
http://fpgacpu.wordpress.com/2013/05/28/how-to-design-and-access-a-memory-mapped-device-part-one/
and
Development with Zynq
http://blog.fakultaet-technik.de/development-with-zynq-part-1/
A summary of what I have done up to now is to:
+ Create a very simple design in HLS. It is a function getting an integer and returning it incremented by one. I have used 'AXI4LiteS' resource for both the argument and the return value.
+ Create the bitstream in Vivado as being described on the UG871 Chapter 10 - Using an HLS IP in a Zynq Processor Design.
+ Create the First Stage Boot Loader on SDK using the exported design from Vivado.
+ Create a devicetree.dts describing my design having 'compatible' set to generic-uio.
+ Copy the boot.bin and devicetree.dtb to the first partition along with the linux kernel.
+ Write a demo program using the HLS driver and upload it to the ZedBoard.
+ Crash linux on ZedBoard...
Any hint of what I am doing wrong? Please ask for any additional detail that might help.