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: 
264 Views
Registered: ‎07-05-2018

Using dma though petalinux or other linux interface

So, because of the DMA bug in PYNQ, now I have to transfer my whole design to other high-level interfaces.

The bd I'm using is like this

2019-04-14.png

And the SDK I'm using is like this

2019-04-14 (1).png

In order to use other cv libraries such as OpenCV, this DMA needs to be initialized and used though Linux interface.

I have already built my petalinux environment and generate boot.bin and image.ub, then it can successfully boot my ZCU104.

Basically, I need to code a c program, in my code I'm gonna use OpenCV to load an image from SD card, do some basic process, then use DMA to send data to my custom IP after that open DMA receive channel and load data back to DDR memory.

But from here, I'm out of clue, what should I do next to finish my goal?  Should I finish my code in SDK first and cross compile it to petalinux? Or there is another way out?

A little hint would be really helpful.

 

 

0 Kudos
1 Reply
Highlighted
Explorer
Explorer
189 Views
Registered: ‎06-03-2015

Re: Using dma though petalinux or other linux interface

Hi

In order to use other cv libraries such as OpenCV, this DMA needs to be initialized and used though Linux interface.

I have already built my petalinux environment and generate boot.bin and image.ub, then it can successfully boot my ZCU104.

Satish: By this time, it is default image loaded in the Board.

Basically, I need to code a c program, in my code I'm gonna use OpenCV to load an image from SD card, do some basic process, then use DMA to send data to my custom IP after that open DMA receive channel and load data back to DDR memory.

Satish: Write a driver add it as dynamic/static  & inside driver use DMA opearations  (dma alloc opearations ) so that your driver uses by default DMA opearations , compile the image if it static can see the same in user prompt, if it is dynamic, mount it from SD card once you enter to user prompt & do insmod.

It is going to work directly.

Write kernel  driver instaed of   C code because generating Bare metal drivers (C drivers ) is intranl to Vivado Design suite & it is seperate process , so instead of that same is writtenin linux kernel, it is in our hand completely.

Hope this resovles your issue.

Thanks & Regards

Satish G

G Satish Kumar
0 Kudos