I am using the latest version of JetPack with a Jetson Orin NX 8GB and a custom carrier board.
This board includes a PCIe port, and I am able to communicate with another card.
However, I am experiencing bandwidth issues. The problem comes from the Max Payload Size.
By default, the value is set to 128, while the card supports up to 256.
After some research and several attempts, I modified the file /boot/extlinux/extlinux.conf by adding:
This addition solves the issue, as shown in the dmesg output:
[ 7.238541] pci 0001:00:00.0: Max Payload Size set to 256/ 256 (was 128), Max Read Rq 256
[ 7.238656] pci 0001:01:00.0: Max Payload Size set to 256/ 512 (was 128), Max Read Rq 256
With this change, I recover the expected bandwidth, and data transfers work correctly.
However, I lose the Ethernet port, it no longer functions.
Is it possible to modify only the Max Payload Size assigned to my card without affecting other components ?
And where exactly should I make these modifications ?
Could you please provide further support on this ?
sudo setpci -s 0005:00:00.0 74.w (device capabilities register for x4)
sudo setpci -s 0005:00:00.0 78.w ( Device Control register for x4) and write value for bits 7:5 as (001b) for 256 Bytes MPS
Please be aware that you need to change 0005 to the device you are using.
However, after making these modifications, I can no longer communicate with my board.
Do I need to reload something ?
Anyway, I noticed that these changes are cleared after shutting down and rebooting.
Is there a way to set the Max Payload Size at startup?
Do I need to modify the kernel or look for a specific file in the DTB files ?