PCIE device not recognised

Hi, I’m using TX2 8GB develop board, if I insert SSD drive into PCIE x4, it work, but Xilinx XDMA device is not.
Jetpack version: 4.5.1
And TX1 can recognize XDMA device, with the same Jetpack version.
kernel log:

# dmesg |grep -e pci
[    0.416620] node /plugin-manager/fragment-500-pcie-config match with board >=3310-1000-500
[    0.417416] node /plugin-manager/fragment-500-e3325-pcie match with board >=3310-1000-500
[    1.063622] PCIE: tegra_pcie_probe(4756)
[    1.063638] PCIE: tegra_pcie_read_plat_data(3244)
[    1.063727] PCIE: tegra_pcie_parse_dt(3346)
[    1.063796] tegra-pcie 10003000.pcie-controller: 4x1, 1x1 configuration
[    1.063831] PCIE: tegra_pcie_probe_complete(4636)
[    1.063843] PCIE: tegra_pcie_init(2806)
[    1.063853] PCIE: tegra_pcie_get_resources(1941)
[    1.063863] PCIE: tegra_pcie_get_clocks(1304)
[    1.064804] PCIE: tegra_pcie_enable_regulators(1554)
[    1.064821] tegra-pcie 10003000.pcie-controller: PCIE: Enable power rails
[    1.064905] PCIE: tegra_pcie_power_on(1825)
[    1.065010] PCIE: tegra_pcie_restore_device(1766)
[    1.065024] PCIE: tegra_pcie_module_power_on(1718)
[    1.065034] PCIE: tegra_pcie_enable_regulators(1554)
[    1.065044] PCIE: tegra_pcie_map_resources(1599)
[    1.065068] PCIE: tegra_pcie_enable_pads(1443)
[    1.065137] PCIE: tegra_pcie_enable_controller(1486)
[    1.065189] PCIE: tegra_pcie_enable_msi(3043)
[    1.065254] PCIE: tegra_pcie_check_ports(2497)
[    1.065269] tegra-pcie 10003000.pcie-controller: probing port 0, using 4 lanes
[    1.065284] PCIE: tegra_pcie_port_enable(2025)
[    1.065295] PCIE: tegra_pcie_port_reset(1996)
[    1.067543] PCIE: tegra_pcie_enable_rp_features(2366)
[    1.067569] tegra-pcie 10003000.pcie-controller: RP prod settings are not found in DT
[    1.067578] PCIE: tegra_pcie_enable_aer(1045)
[    1.067595] PCIE: tegra_pcie_apply_sw_war(2208)
[    1.067781] PCIE: tegra_pcie_prsnt_map_override(1103)
[    1.067796] tegra-pcie 10003000.pcie-controller: probing port 2, using 1 lanes
[    1.067812] PCIE: tegra_pcie_port_enable(2025)
[    1.067823] PCIE: tegra_pcie_port_reset(1996)
[    1.069785] PCIE: tegra_pcie_enable_rp_features(2366)
[    1.069804] tegra-pcie 10003000.pcie-controller: RP prod settings are not found in DT
[    1.069813] PCIE: tegra_pcie_enable_aer(1045)
[    1.069828] PCIE: tegra_pcie_apply_sw_war(2208)
[    1.069993] PCIE: tegra_pcie_prsnt_map_override(1103)
[    1.491274] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    1.491277] PCIE: tegra_pcie_port_reset(1996)
[    1.895536] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    1.895538] PCIE: tegra_pcie_port_reset(1996)
[    2.299804] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    2.299806] PCIE: tegra_pcie_port_reset(1996)
[    2.301825] tegra-pcie 10003000.pcie-controller: link 2 down, ignoring
[    2.301827] PCIE: tegra_pcie_port_disable(2056)
[    2.301830] PCIE: tegra_pcie_link_speed(2779)
[    2.506640] PCIE: tegra_pcie_scale_voltage(2654)
[    2.506646] tegra-pcie 10003000.pcie-controller: afi_clk is set @ 204000000
[    2.506998] tegra-pcie 10003000.pcie-controller: emc_clk is set @ 480000000
[    2.509093] PCIE: tegra_pcie_conf_gpios(2551)
[    2.509096] PCIE: tegra_pcie_enable_msi(3043)
[    2.509364] tegra-pcie 10003000.pcie-controller: PCI host bridge to bus 0000:00
[    2.509369] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    2.509373] pci_bus 0000:00: root bus resource [mem 0x40100000-0x47ffffff]
[    2.509376] pci_bus 0000:00: root bus resource [mem 0x48000000-0x7fffffff pref]
[    2.509380] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.509412] pci 0000:00:01.0: [10de:10e5] type 01 class 0x060400
[    2.509527] pci 0000:00:01.0: PME# supported from D0 D1 D2 D3hot D3cold
[    2.509690] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    2.509825] PCIE: tegra_pcie_add_bus(781)
[    2.509827] PCIE: tegra_pcie_bus_alloc(593)
[    2.509844] PCIE: tegra_pcie_isr(1212)
[    2.509848] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    2.509853] tegra-pcie 10003000.pcie-controller: PCIE: Response decoding error, signature: 10010001
[    2.509879] pci 0000:00:01.0: PCI bridge to [bus 01]
[    2.509897] PCIE: tegra_pcie_configure_aspm(921)
[    2.509901] PCIE: tegra_pcie_enable_ltr_support(880)
[    2.509906] PCIE: tegra_pcie_enable_features(2791)
[    2.509907] PCIE: tegra_pcie_apply_sw_war(2208)
[    2.510033] pcieport 0000:00:01.0: of_irq_parse_pci() failed with rc=-22
[    4.037483] ehci-pci: EHCI PCI platform driver
[    4.037521] ohci-pci: OHCI PCI platform driver
# lspci 
00:01.0 PCI bridge: NVIDIA Corporation Device 10e5 (rev a1)

Many more complicated PCIe devices, including FPGAs, tend to take a moment to boot. If boot has not comleted, then a response to a PCIe query would be missed. By default hot plug is disabled on Jetsons, and if the query does not succeed at the start of boot, then the device, even if it becomes available later, won’t be visible.

If there is a way to power up the device earlier, such that it is already booted before the Jetson is powered up, then that would be one workaround. I can’t tell you the specifics of setting up for a delayed query of PCIe, but this too would be another workaround (someone else would need to give you the details). Basically it is likely all a boot timing issue.

Hi @linuxdev :
Thanks for reply!
My FPGA is powered independent, and I also tried reboot TX2 when FPGA is running, nothing worked.
I also tried add nvidia,boot-detect-delay = <20000> to tegra186-quill-p3310-1000-c03-00-base.dts, not worked.
The things confused me is TX1 works! with the same Jetpack version.

I probably can’t help with more details, but if the FPGA is fully booted prior to starting the Jetson, and attach a full serial console boot log (don’t use dmesg, it doesn’t include early boot logs), I think someone here will be able to help.