PCIE usab3.0 crash after warm reboot

Hi, I am using usb3.0 via PCIe, there is a problem after warm reboot(sudo reboot) a few times, system version is L4T 35.4.1,the error is fllow:

Mar 15 11:04:29 ubuntun kernel: [   22.120806] xhci_hcd 0005:01:00.0: Abort failed to stop command ring: -110
Mar 15 11:04:29 ubuntun kernel: [   22.153055] xhci_hcd 0005:01:00.0: Host halt failed, -110
Mar 15 11:04:29 ubuntun kernel: [   22.153199] xhci_hcd 0005:01:00.0: xHCI host controller not responding, assume dead
Mar 15 11:04:29 ubuntun kernel: [   22.153407] xhci_hcd 0005:01:00.0: HC died; cleaning up
Mar 15 11:04:29 ubuntun kernel: [   22.153825] xhci_hcd 0005:01:00.0: Error while assigning device slot ID
Mar 15 11:04:29 ubuntun kernel: [   22.154018] xhci_hcd 0005:01:00.0: Max number of devices this xHCI host supports is 32.

system 32.6.1not exit the problem, I don’t know what causes this problem?

Did you really have lots of devices connected there? The log says “Max number of devices this xHCI host supports is 32”.

after this problem,I can not find usb3.0 camera, lsusb info:

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 3: Dev 2, If 0, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 3: Dev 2, If 1, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 3: Dev 2, If 2, Class=Miscellaneous Device, Driver=, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M

or


/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 3: Dev 2, If 0, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 3: Dev 2, If 1, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 3: Dev 2, If 2, Class=Miscellaneous Device, Driver=, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 2: Dev 2, If 0, Class=Miscellaneous Device, Driver=, 480M
    |__ Port 2: Dev 2, If 1, Class=Miscellaneous Device, Driver=, 480M
    |__ Port 2: Dev 2, If 2, Class=Miscellaneous Device, Driver=, 480M

after power on,lsusb info:

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M
    |__ Port 3: Dev 2, If 0, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 3: Dev 2, If 1, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 3: Dev 2, If 2, Class=Miscellaneous Device, Driver=, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 2: Dev 2, If 1, Class=Miscellaneous Device, Driver=, 5000M
    |__ Port 2: Dev 2, If 2, Class=Miscellaneous Device, Driver=, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M

32 endpoints are actually a very small amount… maybe you can move that from your pcie adapter to the usb ports provided by NV… it would have more endpoints supported…

Can you provide a detailed description of how to modify it?thank you

厄 我用中文說明你可能比較聽得懂一點

你在用的那個usb3.0 on pcie大概是在說你自己買的轉接頭之類的吧?
這個東西對我們而言就只是個pcie device. 上面跑的usb host driver跟NVIDIA所以提供的usb solution其實無關…

看起來這個東西只有支援endpoints <=32個. 但這個數字其實是蠻小的

如果你使用NVIDIA本來原生的USB port的話我們能支援的endpoints會比這個數字大… 而且不計入那32個裡面 …

簡單來講, 你接在pcie上面的東西並沒有真的在用NV提供的USB solution… 我們也沒辦法幫你調整任何東西 他就只是upstream kernel…
就像是你買了一張PCIe網卡, 我們能提供你的就只有NV PCIe host driver可以偵測到這張卡, 後面這張卡要用Realtek或是Intel所提供的driver就不是我們能幫忙的…

but I can’t understand why this problem doesn’t exist in version 32.6.1

32.6.1用的kernel版本是4.9

35用的kernel版本是5.10

upstream kernel可能有很多變動導致driver多了一些限制. 如同我說的, upstream kernel更改的部份不是我們能幫你改的

ok,I understand. Is there any other way to solve it after the system starts up?

厄… 我上面已經有講了 是不是沒有聽懂…

如果你使用NVIDIA本來原生的USB port的話我們能支援的endpoints會比這個數字大… 而且不計入那32個裡面 …

Sorry, I have to use two USB 3.0,so I must use the pcie usb3.0

你是說你原本的USB3.0 port已經被用掉了是嗎?

Yes, I have connected the camera with nx usb3.0,I need pcie usb3.0 connects to the second camera.

You can put a usb hub on nx usb3.0 port.

Two cameras must be work at the same time, and each usb bandwidth requires 320MB/s, so pcie usb3.0 is required. Pcie usb3.0 works fine after powered on, only warm reboot(sudo reboot) cannot be recognized properly. Can you fix this problem by commands after the system starts?

This is not NVIDIA driver issue so I have nothing to fix here… already told this before…

ok,thanks