I would like to reset a PCIe Device ( an NVMe connected to PCIE0 on a custom carrier board ) . I read online, that this should be possible by removing and rescaning the pcie device ( How to Reset/Cycle Power to a PCIe Device? - Unix & Linux Stack Exchange ).
I tried that but the PCIE_RST pin on the Xavier NX was not set. No matter what I tried, the reset was not asserted. It stayed high. The only time I found the pin changed was at boot when the reset was deasserted.
Is that the intended behaviour? Is there a way to assert the PCIE_RST by hand?
Setting the reset sysfs command did not set the PCIe Rst either.
0004:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad1 (rev a1)
0004:01:00.0 PCI bridge: Pericom Semiconductor Device 2404 (rev 05)
0004:02:01.0 PCI bridge: Pericom Semiconductor Device 2404 (rev 05)
0004:02:02.0 PCI bridge: Pericom Semiconductor Device 2404 (rev 05)
0004:02:03.0 PCI bridge: Pericom Semiconductor Device 2404 (rev 05)
0004:03:00.0 RAM memory: Xilinx Corporation Device d021
0004:04:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
0005:00:00.0 PCI bridge: NVIDIA Corporation Device 1ad0 (rev a1)
0005:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
$ sudo sh -c "echo 1 > /sys/bus/pci/devices/0005\:01\:00.0/reset"
Sorry for the late response, is this still an issue to support? Thanks
Hello, thanks for coming back on that issue. Yes it is. We think it is necessary to reset a PCIe switch after a NVMe connected to that switch was swapped. Right now we have no solution other than to reset the whole system which is not an option for the finished product.
Tegra PCIe doesn’t support hotplug, so rescan/reset sysfs nodes won’t work.
Instead, you can unbind and bind Tegra PCIe platform driver.
Below example is for M.2 Key M slot in Jetson NX board.
echo 141a0000.pcie > unbind
echo 141a0000.pcie > bind
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.