cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
344 Views
Registered: ‎06-28-2019

AXI 1G/2.5G not working when multiple DMA instances are in the design

Hi everyone,

I'm working on a KCU105 board with Vivado/PetaLinux 2019.2.

The design example xilinx-kcu105-axi-full-2019.2 includes an ethernet subsystem with DMA. All working fine so far (except for the occasional "DMA Rx error" message under Linux which doesn't seem to be an issue though).

I need to add a second DMA instance to the design but as as soon as I do this, the ethernet stops working. It still gets recognised by the kernel but always reports "Link is Down". When I use u-boot then the PHY auto negotiation results in a timeout.

Am I missing something obvious here?

Thanks,

Gottfried 

Tags (3)
0 Kudos
3 Replies
Highlighted
Moderator
Moderator
292 Views
Registered: ‎08-25-2009

Hi @gottfriedlechner ,

There is a conflict to use AXI Ethernet Subsystem and an additional AXI DMA in a Linux system.

1) AXI Ethernet linux dirver includes AXI DMA driver in which this AXI DMA is attached to AXI Ethernet IP.  So when users use AXI ethernet IP, they will need to manually disable AXI DMA driver.

2) If you add a 2nd AXI DMA in your system, you will need to enable AXI DMA driver for this DMA to work.

Currently there is not a good solution. We see customers create their own drivers in the past.

"Don't forget to reply, kudo and accept as solution."
0 Kudos
Highlighted
226 Views
Registered: ‎06-28-2019

Hi,

Thanks for the response and explanation - that makes sense.

I was planning to write my own DMA driver for this project - hence, disabling the AXI DMA driver is not an issue.

However, even when I disable the AXI DMA driver then AXI Ethernet is not working when a second DMA engine is in the design.

For testing, I tried to I disconnect the interrupts from the second DMA engine and then everything is working fine.

Will still try to get this working and post if I found a solution but any advise would be much appreciated.

 

0 Kudos
Highlighted
217 Views
Registered: ‎06-28-2019

As a follow up - I just reproduced this in a clean environment with the following steps:

  1. download and extract xilinx-kcu105-axi-full-v2019.2-final.bsp
  2. build petalinux without changing any settings
  3. package and download -> ethernet working
  4. add second DMA using Connection Automation with default settings, loopback streams and connect the two interrupts to Concat
  5. build petalinux without changing any settings
  6. package and download -> ethernet NOT working
  7. disconnect interrupts of added DMA and rebuild -> ethernet working again and DMA showing up in the device tree

 

0 Kudos