Test PCIe endpoint on Jetson Orin NX Failed

Hi Team,

I referred to this document to test the communication between the host and the Jetson Orin NX. But on RP busybox devmen read from and write to 80700000 does not have any effect, read is always 0xFFFFFFFF。How should I solve this problem?

The host information is as follows:

# cat /etc/os-release 
NAME="openEuler"
VERSION="22.03 (LTS-SP3)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP3)"
ANSI_COLOR="0;31"

# uname -a
Linux ai 5.4.18 #30 SMP Tue Nov 25 17:33:46 CST 2025 x86_64 x86_64 x86_64 GNU/Linux

# lspci -v -s 02:00.0
02:00.0 RAM memory: NVIDIA Corporation Device 0001
Flags: fast devsel, IRQ 10, NUMA node 0, IOMMU group 15
Memory at 80700000 (32-bit, non-prefetchable) [size=64K]
Memory at 7fcfff00000 (64-bit, prefetchable) [size=128K]
Memory at 80710000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable- Count=8 Masked-
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Secondary PCI Express
Capabilities: [168] Physical Layer 16.0 GT/s 
Capabilities: [1a4] Latency Tolerance Reporting
Capabilities: [1ac] L1 PM Substates
Capabilities: [1bc] Vendor Specific Information: ID=0002 Rev=4 Len=100 
Capabilities: [2f4] Data Link Feature 
Capabilities: [374] Vendor Specific Information: ID=0006 Rev=0 Len=018 <?>

# zcat /proc/config.gz | grep CONFIG_STRICT_DEVMEM
CONFIG_STRICT_DEVMEM is not set

# setpci -s 02:00.0 COMMAND
0002

# busybox devmem 0x80700000
0xFFFFFFFF

Jetson Orin NX information as follows:

# jetson_release
Software part of jetson-stats 4.3.2 - (c) 2024, Raffaello Bonghi
Model: NVIDIA Orin NX Developer Kit - Jetpack 5.1.5 [L4T 35.6.1]
NV Power Mode[3]: 25W
Serial Number: [XXX Show with: jetson_release -s XXX]
Hardware:
P-Number: p3767-0000
Module: NVIDIA Jetson Orin NX (16GB ram)
Platform:
Distribution: Ubuntu 20.04 focal
Release: 5.10.216-tegra
jtop:
Version: 4.3.2
Service: Active
Libraries:
CUDA: 12.2.91
cuDNN: 9.2.0
TensorRT: Not installed
VPI: Not installed
Vulkan: 1.3.204
OpenCV: 4.2.0 - with CUDA: NO

# dmesg | grep -A 5 -B 5 “BAR0 RAM phys”
[   16.064217] NVRM rpcRmApiControl_dce: NVRM_RPC_DCE: Failed RM ctrl call cmd:0x731341 result 0xffff:
[   17.663474] fuse: init (API version 7.32)
[   18.358018] r8168: eth0: link up
[   18.358130] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  910.590053] tegra-xudc 3550000.xudc: failed to get usbphy-0: -517
[  910.937953] pci_epf_nv_test pci_epf_nv_test.0: BAR0 RAM phys: 0x1727e8000
[  910.937975] pci_epf_nv_test pci_epf_nv_test.0: BAR0 RAM IOVA: 0xffff0000
[  910.938017] pci_epf_nv_test pci_epf_nv_test.0: BAR0 RAM virt: 0x00000000f5e7f608

# zcat /proc/config.gz | grep CONFIG_STRICT_DEVMEM
CONFIG_STRICT_DEVMEM is not set

# lspci
0001:00:00.0 PCI bridge: NVIDIA Corporation Device 229e (rev a1)
0001:01:00.0 Non-Volatile memory controller: Sandisk Corp Device 5005 (rev 01)
0008:00:00.0 PCI bridge: NVIDIA Corporation Device 229c (rev a1)
0008:01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

# busybox devmem 0x1727e8000
0xFA950001
# busybox devmem 0x1727e8000 32 0x12345678
# busybox devmem 0x1727e8000
0x12345678

How did you port the driver of pci_epf_nv_test on your host PC?

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, it appears that you are experiencing issues with communication between the host and the Jetson Orin NX module, specifically with read and write operations.

To address this issue, I recommend checking the following:

  1. PCIe Endpoint Mode: Ensure that the Jetson Orin NX module is properly configured in PCIe Endpoint Mode. You can refer to the “PCIe Endpoint Mode” section in the “Communications” chapter of the Jetson Orin NX Series and Jetson Orin Nano Series Modules Tuning and Compliance Guide (DA-11267-001_v1.2).
  2. Software Packages and Update Mechanism: Verify that the Jetson Orin NX module has the latest software packages and updates installed. You can check the “Software Packages and the Update Mechanism” section in the guide for more information.
  3. Platform Power and Performance: Ensure that the Jetson Orin NX module is properly configured for power and performance. You can refer to the “Platform Power and Performance” section in the guide, which covers the Jetson Orin Nano Series, Jetson Orin NX Series, and Jetson AGX Orin Series.
  4. Debugging on Jetson Platforms: Use the debugging tools provided in the Jetson Linux Development Tools, such as the Program Trace Macrocell, Tegrastats Utility, and Tegra Combined UART, to troubleshoot the issue.
  5. Checklists: Refer to the checklists provided in the “Jetson Module Adaptation and Bring-Up” section of the guide, specifically for the Jetson Orin NX and Nano Series, to ensure that all necessary steps have been taken.

In comparison to other Jetson modules, the Jetson Orin NX and Nano Series have similar requirements and configurations for PCIe Endpoint Mode, software packages, and platform power and performance. However, it’s essential to consult the specific documentation for the Jetson Orin NX module to ensure that all necessary steps are taken.

To further troubleshoot the issue, you may want to:

  • Verify that the host system is properly configured and communicating with the Jetson Orin NX module.
  • Check the Jetson Orin NX module’s EEPROM layout and configuration.
  • Use the Jetson Linux Toolchain and Development Tools to debug and analyze the issue.

If you continue to experience issues, I recommend submitting a bug report with detailed information about your setup, configuration, and the problems you are encountering.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

As mentioned in the document, any x86 Linux PC can be used.

I’m a beginner. I would like to know if the driver you mentioned also needs to be installed on the Host PC?

actually x86 host PC is not validated. The document only indicates theoretically it could work.

We only have standard steps for Orin to Orin validaton.

@WayneWWW

Thank you for your reply.

So, If I were to attempt to analyze it, which aspects could serve as potential entry points?

What knowledge should I acquire? Also, do you have any materials that you could share?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.