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
Visitor vigunawa
Visitor
671 Views
Registered: ‎05-11-2018

PCIe transfer fails when mutliple blocks access the same memory

Jump to solution

Hi,

I am currently developing on the KCU105 board and using Ubuntu 16.04 as the PC host. I have a pretty simple setup that I am trying to get working. I have some data being written into the on board DDR4 using an AXI MM interface. I want to move this data to the host using PCIe. I used the DMA/Bridge system in MM mode to implement this. I have setup the example design for the DMA/Bridge system and used the Xilinx provided drivers. This works quite nicely, run_tests.sh completes successfully.

After some testing and I found out that having multiple things access the memory causes run_tests.sh to fail. Particularly it returns W off or R off error. This message shows up when the number of bytes TO BE written does not equal the number of bytes actually written (can be seen in dma_utils.c). The number of bytes being written seems to return 0xFFFFFFFF...... as if it does not know when to stop. I do not have much experience with writing drivers so some details in the code flies right by me i.e. how write(2) command works.

I have attached a screenshot showing the difference. The left side is the setup I am having trouble with. I made sure that both XDMA cores are connected to S00 and preserved all the connections (i.e. ACLK,M00,S00) as much as possible. I might have overlooked something but I am not sure. Any feedback would be very helpful. Thanks!


Victor

test.png
0 Kudos
1 Solution

Accepted Solutions
Moderator
Moderator
661 Views
Registered: ‎02-16-2010

Re: PCIe transfer fails when mutliple blocks access the same memory

Jump to solution
What is the offset address for the M_AXI to DDR? Is it 0x0000_0000? The run_tests script assumes the offset to be at 0x0000_0000.
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------

View solution in original post

3 Replies
Moderator
Moderator
662 Views
Registered: ‎02-16-2010

Re: PCIe transfer fails when mutliple blocks access the same memory

Jump to solution
What is the offset address for the M_AXI to DDR? Is it 0x0000_0000? The run_tests script assumes the offset to be at 0x0000_0000.
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------

View solution in original post

Visitor vigunawa
Visitor
592 Views
Registered: ‎05-11-2018

Re: PCIe transfer fails when mutliple blocks access the same memory

Jump to solution

Ah yes that makes run_test.sh work. Thank you!

 

On another note, should perform_hwcount.sh also work without a problem because running perform_hwcount.sh seems to fail after the initial 64byte test? Then afterwards it would cause an error on the particular channel ie. after h2c_0 is tested through perform_hwcount.sh, dma_to_device command issued to h2c_0 reports an error.

 

 

-Victor

0 Kudos
Moderator
Moderator
582 Views
Registered: ‎02-16-2010

Re: PCIe transfer fails when mutliple blocks access the same memory

Jump to solution
Can you please create a new thread with more details of your observations?

Please provide the dma_to_device command the result echoed by the driver.
------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
0 Kudos