Hi,
I recently customized a TX2 carrier board and modified the device tree to configure 5: 1xUSB3.0+2x1 PCIe+1x2 PCIe. I have checked ODMDATA using the busybox command, so the current device tree should be correct. The strange thing is that I can only detect one of the PCIe devices, and the other two cannot be detected. I want to ask:
For your dts file, please directly convert the dtb file back to dts with dtc tool and paste it here.
And for your question 2, I tend to not answer this question. You should be able to find out which pice device is working by either hardware checking of software check by yourself.
I couldnāt tell you what the duplicate is, but it thinks you have two devices in the same PCIe slot. In theory part of the problem could be something passed by device tree. Your āmissingā device probably has some duplication with another device.
I modified the dts file, but now the first error appears again: pcie0 and pcie2 are not recognized. This time I saw that dmesg shows that there is no duplicate device. The strangest thing is that I canāt reproduce the previous error-even if I use the previous dtb backup, it cannot appear that only pcie1 is available, the other two are unavailable, and the error āsysfs: cannot create duplicate filenameā is reported.
The attached dmesg part of the zip file was empty, so there is no way to see any message about PCIe during boot (youād really want a serial console boot log so it shows content prior to reaching the Linux kernelā¦this is superior to a dmesg when you need to know about early setup of a device).
Hint on lspci: It needs sudo to display some of the details of increased verbosity levels.
I donāt know enough about PCIe lane setup to help test further, but if you do have two PCIe devices with one not showing up, then there is a failure prior to the USB part of the device tree. If you made any kind of edit specific to PCIe lane mapping, then you might want to submit just a clip of the before and after for that section of the dts.
Just to emphasize, I donāt think I can be much help at this point, but I do see this which sticks out (several times):
[ 3.624112] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[ 3.626162] tegra-pcie 10003000.pcie-controller: link 2 down, ignoring
Followed later by:
[ 10.555032] pci 0000:01:00.0: xHCI HW not ready after 5 sec (HC bug?) status = 0x801
I donāt know what device tree entry might be related to that, but it seems like it was trying to bring the link up. Most of the custom carrier board cases where something just does not come up, but should otherwise be ok, fall into the device category of failure.
The lspci wonāt show something if the link is down. The bridge and the USB controller which shows up have no errors, so I would expect that if the device tree were correct, then your other device would also show up. Someone else will need to look at the device tree since I have not worked on custom carrier boards.