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: 
Highlighted
Explorer
Explorer
870 Views
Registered: ‎04-23-2013

How can a polling loop know about available S2MM data in a circular VDMA memory?

Jump to solution

Hello,

 

I have a zynq board w/ 1GB DDR.

I set up an AXI VDMA w/ a write-only S2MM channel w/ a circular buffer and 32 frame stores.

In my bare metal code, I configured it and it is not throwing any errors.

I connected S2MM to a custom data source that I have simulated and feel good that I have it hooked up right.

 

The problem is that I can't find any examples of how to recognize new data in the frame stores.

The IP registers don't seem to have anything.

I was expecting something like bits or flags to indicate ownership of individual frame stores.

 

I did find interrupt examples, but they also don't seem to actually read off the data from the DDR RAM.

 

Any help would be greatly appreciated.

 

Thanks,

Emmett

Tags (1)
0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
1,197 Views
Registered: ‎11-09-2015

Re: How can a polling loop know about available S2MM data in a circular VDMA memory?

Jump to solution

Hi @emmettbradford,

 

You can do it by both PS or PL. In PS you just have to read the registers, in PL you can look at the pointers.

 

Regards,


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
3 Replies
Moderator
Moderator
845 Views
Registered: ‎11-09-2015

Re: How can a polling loop know about available S2MM data in a circular VDMA memory?

Jump to solution

Hi @emmettbradford,

 

The problem is that I can't find any examples of how to recognize new data in the frame stores.

So you want a way to check that the data has been updated correct?

 

I don't think there is the feature in the VDMA has it will continuously write. You will just know in which frame buffer you are writting. But if you constantly read this value, you can know which one has been updated.

 

Regards,


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
Explorer
Explorer
837 Views
Registered: ‎04-23-2013

Re: How can a polling loop know about available S2MM data in a circular VDMA memory?

Jump to solution

Hi Florent,

Thanks for the reply.

You are correct, I want to know which frame stores have frames that have not been processed yet.

The purpose being that the PS (the USB in my case) may occasionally be too busy to keep up and multiple frames might pile up.

Once the PS is freed up, it needs to catch up by reading the new frames from RAM, processing, sending, storing, etc.

 

So you're saying the only way to keep track of what is new vs old data in the frame stores is with PS (or PL?) code?

In the case of PL code, I could use the s2mm_frame_ptr_out vector and s2mm_intr_out ports as input to my vhdl module???

 

Thanks,

Emmett

0 Kudos
Moderator
Moderator
1,198 Views
Registered: ‎11-09-2015

Re: How can a polling loop know about available S2MM data in a circular VDMA memory?

Jump to solution

Hi @emmettbradford,

 

You can do it by both PS or PL. In PS you just have to read the registers, in PL you can look at the pointers.

 

Regards,


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**