cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
585 Views
Registered: ‎09-21-2018

DMA/Bridge Subsystem as Root Complex

Jump to solution

Hi,

I have an Artix-7 that is currently being used as a PCIe endpoint, but ultimately need this to be Root Complex (due to migrating to a custom PCB instead of a dev board, etc.). We have working drivers for using The DMA/Bridge Subsystem for PCI Express (XDMA) IP and so I would like to continue using this particular IP to avoid writing new kernel drivers. The problem is that the option to make the XDMA IP act as Root Complex is locked out and seemingly unusable for me no matter what options I select. See attached screenshot. As far as I am aware, the Artix-7 should be hardware-capable of being an endpoint or root complex. What is the cause of this and how can I get around it?

xdma.png
0 Kudos
Reply
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
502 Views
Registered: ‎03-31-2016

You cannot just put the other issues aside, they are fundamental to the problem. 

 

The only way a Artix root complex is useful to get any level of driver compatibility with an existing Artix End-Point design is if you have a Microblaze running on one Artix with a root complex connected to a second Artix running that End-Point design.  Your original development host system would probably have to be Microblaze based for it to really apply too.

The driver for the root complex mode would not be compatible with the end point DMA driver.

 

If you give a little more detail on what you are trying to do someone might have a good suggestion.  Where is the processor that you plan to use to run the driver code?  How is it connected to the root complex Artix?

 

To answer the specific question, looking at the PG more closely reveals that for 7 series you must use a different IP for Bridge mode, I didn't check if that IP supports RC.

Functional Mode: Allows you to select between the following:
• DMA (DMA Subsystem for PCIe).
• AXI Bridge (AXI Bridge Subsystem for PCIe). The AXI Bridge option is valid only for
UltraScale+™ devices. For details about PCIe Bridge mode operation, see AXI Bridge for PCI
Express Gen3 Subsystem Product Guide (PG194). This document covers DMA mode
operation only.

 

View solution in original post

0 Kudos
Reply
4 Replies
Highlighted
Explorer
Explorer
551 Views
Registered: ‎03-31-2016

To enable root complex you must be in Bridge mode not DMA mode.  But I don't think that will solve your problem as you have described it.

The root complex must be part of the chip executing the driver code or it must be connected to that chip via something other than PCIe.

You can use an Artix with the core in Root Complex mode along with a Microblaze and some software, or even a fully RTL solution, to talk to another PCIe device, even another Artix design in EP mode.  But you cannot just change from EP to RC in an otherwise untouched design and expect driver compatibility or even any functionality.

What do you expect the processing core to be in this new system?  If its something in the Artix itself, as implied by trying to make it a Root Complex, why involve PCIe at all?

0 Kudos
Reply
Highlighted
508 Views
Registered: ‎09-21-2018

I'm aware this it's a weird solution but an existing PCB design limits what I'm able to change. All other issues aside, the problem I'm trying to solve here is that the XDMA IP does not allow me to make the Artix Root Complex (or put the IP in Bridge mode) through the available options. I'm just curious what I need to change to even unlock the possibility of making that happen. 

0 Kudos
Reply
Highlighted
Explorer
Explorer
503 Views
Registered: ‎03-31-2016

You cannot just put the other issues aside, they are fundamental to the problem. 

 

The only way a Artix root complex is useful to get any level of driver compatibility with an existing Artix End-Point design is if you have a Microblaze running on one Artix with a root complex connected to a second Artix running that End-Point design.  Your original development host system would probably have to be Microblaze based for it to really apply too.

The driver for the root complex mode would not be compatible with the end point DMA driver.

 

If you give a little more detail on what you are trying to do someone might have a good suggestion.  Where is the processor that you plan to use to run the driver code?  How is it connected to the root complex Artix?

 

To answer the specific question, looking at the PG more closely reveals that for 7 series you must use a different IP for Bridge mode, I didn't check if that IP supports RC.

Functional Mode: Allows you to select between the following:
• DMA (DMA Subsystem for PCIe).
• AXI Bridge (AXI Bridge Subsystem for PCIe). The AXI Bridge option is valid only for
UltraScale+™ devices. For details about PCIe Bridge mode operation, see AXI Bridge for PCI
Express Gen3 Subsystem Product Guide (PG194). This document covers DMA mode
operation only.

 

View solution in original post

0 Kudos
Reply
Highlighted
479 Views
Registered: ‎09-21-2018

I believe the confusion has stemmed from the wording of my original question, which should have just been Why does DMA/Bridge Subsystem IP not support Bridge/Root Complex mode when used with an Artix-7. The information that that mode of the IP is simply not supported unless used with an UltraScale+ device serves to answer that question. The other details are irrelevant and would only serve as a source of even more confusion. Thanks for your help.

0 Kudos
Reply