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
Newbie koidis
Newbie
4,505 Views
Registered: ‎10-14-2016

Control AXI DMA from PL module

Jump to solution

Hi I would like to control an AXI DMA module (Receive channel initialization, Sent channel initialization, DMA start etc) from my HLS component instead of the PS I suppose I have to implement an AXI4 Master interface but I can't find a tutorial on how to access specific addresses (control registers) inside the AXI DMA module.

 

Any Ideas?

0 Kudos
1 Solution

Accepted Solutions
Teacher muzaffer
Teacher
8,356 Views
Registered: ‎03-31-2012

Re: Control AXI DMA from PL module

Jump to solution
It's very easy. All you need is an axi-master which writes to certain offsets. Assuming that this master is the only one controlling the AXI DMA block (ie directly connected to it instead of going through a multimaster interconnect) then you just write to the offsets described in axi dma spec ie the "AXI DMA Register Address map" so if the port which implements axi_master is "uint32* dma_ptr" you just have to say *(dma_ptr + 1) = foo;
to access the MM2S_DMASR register. This assumes you set the C_BASEADDR to zero
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
2 Replies
Teacher muzaffer
Teacher
8,357 Views
Registered: ‎03-31-2012

Re: Control AXI DMA from PL module

Jump to solution
It's very easy. All you need is an axi-master which writes to certain offsets. Assuming that this master is the only one controlling the AXI DMA block (ie directly connected to it instead of going through a multimaster interconnect) then you just write to the offsets described in axi dma spec ie the "AXI DMA Register Address map" so if the port which implements axi_master is "uint32* dma_ptr" you just have to say *(dma_ptr + 1) = foo;
to access the MM2S_DMASR register. This assumes you set the C_BASEADDR to zero
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Newbie koidis
Newbie
4,317 Views
Registered: ‎10-14-2016

Re: Control AXI DMA from PL module

Jump to solution

You have been very helpful, 

 

thanks

0 Kudos