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!

Showing results for 
Search instead for 
Did you mean: 
Visitor andrius2.
Registered: ‎02-21-2019

PCIe subsystem. Controllers configured as endpoints - question


Let's say my PCIe subsystem has four controllers.
Each controller can be configured as a root complex or as an endpoint.

Would it work if I would configure all four controllers as endpoints? I.e. Would it work if I would connect four endpoints to four ports configured as endpoints or is for at least one Root Complex needed for system to work?


0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
Registered: ‎07-16-2019

Re: PCIe subsystem. Controllers configured as endpoints - question


There is a similiar question that his been answered on a different forum post found here:


"You cannot connect two endpoints together directly as they will not link train. You would need to connect them via a switch or through two ports on a root complex.

Now whether or not you need a "true" root complex or not depends on your design. But if you are looking at it strictly from the point of view as to what will link train, you have to connect downstream ports (root port or switch downstream port) to and upstream port (endpoint or upstream port of a switch).

The term root complex is used to describe all the functionality needed to enumerate and configure the link and move data back and forth to the memory sub-system. We provide a root port which you could then use to build a full functioning root complex if you wanted too.

It just depends on what you are trying to accomplish. Even you you connect two endpoints together via a switch, you will still most likely need a host or root complex type application to configure the endpoints and make them operate." - John


I hope this helps!


0 Kudos