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!

AR# 65980

2015.2.1 PetaLinux - How do I write the device-tree binding to bring up PCI in Linux


I need to bring up PCI in Linux.

Currently when I add PCI in hardware, I do not see the devices listed when I enter the "lspci" command after bootup.

What is the correct way to see the devices in Linux?


1) Verify that you have added the PCI node into the device tree correctly.

Here is an example of a PCI device-tree binding. You will need to make sure that the compatible string is pertinent to the latest driver.

 amba_pl: amba_pl {
  #address-cells = <1>;
  #size-cells = <1>;
  compatible = "simple-bus";
  ranges ;
  axi_pcie: axi-pcie@50000000 {
   #address-cells = <3>;
   #interrupt-cells = <1>;
   #size-cells = <2>;
   compatible = "xlnx,axi-pcie-host-1.00.a";
   device_type = "pci";
   interrupt-map = <0 0 0 1 &pcie_intc 1>,
     <0 0 0 2 &pcie_intc 2>,
     <0 0 0 3 &pcie_intc 3>,
     <0 0 0 4 &pcie_intc 4>;
   interrupt-map-mask = <0 0 0 7>;
   interrupt-parent = <&intc>;
   interrupts = <0 59 4>;
   ranges = <0x02000000 0x00000000 0x60000000 0x60000000 0x00000000 0x10000000>;
   reg = <0x50000000 0x1000000>;
   pcie_intc: interrupt-controller {
    #address-cells = <0>;
    #interrupt-cells = <1>;
    interrupt-controller ;

2) Verify that you have enabled PCI support in the Linux Kernel config.


3) Verify that you have enabled the Xilinx AXI PCIe host controller bridge support.


4) Verify that you have enabled the pciutils in rootfs configuration to use the lspci command in Linux


Here is the link for the device-tree binding for Xilinx PCI:


Here is the link for the overall PCI documentation:


Here is an example of how you can test the interface:


Here is a link to a video that goes through the flow.


Please keep in mind that this was done in an older version of the kernel. In order to get the correct device-tree binding, please refer to the first link.

Some PCI root complex designs can be downloaded for reference at the following links:





AR# 65980
Date 03/21/2016
Status Active
Type General Article
  • SoC
  • FPGA Device Families
  • PetaLinux - 2015.2.1
  • PCI-Express (PCIe)
Page Bookmarked