Jetson TX2 PCIe communication with Xilinx FPGA

Hi,

We have a custom carrier board which has Xilinx Artix 7 and Jetson TX2. We want Jetson to communicate with this FPGA via PCIe. When I type lspci, I can see that Linux can detect FPGA.

nvidia@tegra-ubuntu:~$ lspci
00:01.0 PCI bridge: NVIDIA Corporation Device 10e5 (rev a1)
01:00.0 Serial controller: Xilinx Corporation Device 7024

However when I try to load Xilinx reference driver, it says “Error: The Kernel module installed correctly, but no devices were recognized.”

dmesg output is:

[ 2997.348703] tegradc 15210000.nvdisplay: hdmi: pclk:74250K, set prod-setting:prod_c_75M
[ 2997.408907] tegradc 15210000.nvdisplay: unblank
[ 3460.512839] xdma:xdma_mod_init: Xilinx XDMA Reference Driver xdma v2017.1.47
[ 3460.520260] xdma:xdma_mod_init: desc_blen_max: 0xfffffff/268435455, sgdma_timeout: 10 sec.
[ 3460.528930] xdma:xdma_device_open: xxx 0xffffffc0683ff700.
[ 3460.534521] xdma:xdma_device_open: xxx 0xffffffc0683ff700.
[ 3460.540096] xdma:xdma_device_open: xdma device 0000:01:00.0, 0xffffffc1deba6800.
[ 3460.547556] xdma:pci_check_extended_tag: 0xffffffc1deba6800 EXT_TAG disabled.
[ 3460.554807] xdma:pci_check_extended_tag: pdev 0xffffffc1deba6800, xdev 0xffffffc1a92ee000, config bar UNKNOWN.
[ 3460.567029] xdma:map_single_bar: BAR0 at 0x51000000 mapped at 0xffffff8011d80000, length=16777216(/16777216)
[ 3460.586990] pcieport 0000:00:01.0: AER: Uncorrected (Non-Fatal) error received: id=0020
[ 3460.597209] pcieport 0000:00:01.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=0008(Requester ID)
[ 3460.597289] xdma:map_single_bar: BAR1 at 0x50800000 mapped at 0xffffff80020c0000, length=65536(/65536)
[ 3460.617396] xdma:map_bars: Failed to detect XDMA config BAR
[ 3460.632305] pcieport 0000:00:01.0:   device [10de:10e5] error status/mask=00004000/00000000
[ 3460.640694] pcieport 0000:00:01.0:    [14] Completion Timeout     (First)
[ 3460.647535] pcieport 0000:00:01.0: broadcast error_detected message
[ 3460.650568] xdma: probe of 0000:01:00.0 failed with error -22
[ 3460.659699] pcieport 0000:00:01.0: AER: Device recovery failed
[ 3460.665577] pcieport 0000:00:01.0: AER: Uncorrected (Non-Fatal) error received: id=0020
[ 3460.673653] pcieport 0000:00:01.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=0008(Requester ID)
[ 3460.685432] pcieport 0000:00:01.0:   device [10de:10e5] error status/mask=00004000/00000000
[ 3460.693807] pcieport 0000:00:01.0:    [14] Completion Timeout     (First)
[ 3460.700637] pcieport 0000:00:01.0: broadcast error_detected message
[ 3460.706947] pcieport 0000:00:01.0: AER: Device recovery failed
[ 3460.712791] pcieport 0000:00:01.0: AER: Multiple Uncorrected (Non-Fatal) error received: id=0020
[ 3460.721598] pcieport 0000:00:01.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=0008(Requester ID)
[ 3460.733338] pcieport 0000:00:01.0:   device [10de:10e5] error status/mask=00004000/00000000
[ 3460.741694] pcieport 0000:00:01.0:    [14] Completion Timeout     (First)
[ 3460.748492] pcieport 0000:00:01.0: broadcast error_detected message
[ 3460.755099] pcieport 0000:00:01.0: AER: Device recovery failed

Linux can detect pci device address and create BAR0 and BAR1 memory registers but then it fails.

Is there any suggestions?

Thank you in advance.

It looks like the FPGA PCIe endpoint here is going off the bus and hence completion timeout error prints.
Does it always happen after Xilinx driver is loaded? If yes, probably, you may have to check what the driver is doing exactly to the device. I also see prints like xdma:pci_check_extended_tag: pdev 0xffffffc1deba6800, xdev 0xffffffc1a92ee000, config bar UNKNOWN which doesn’t look like a normal print. I think we need to study the driver first and understand what are its expectations

Hi, I have meet the same problem. When driver to read PCIE BAR register,tx2 report the err message “PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=0008(Requester ID)”. But driver to write the same register successfully.