1

I'm trying to install a CSL USB 3.0 express card to my Arch Linux system.

However, when I do this, I get the following error message:

xhci_hcd 0000:05:00.0: xHCI host controller not responding, assume dead

xhci_hcd 0000:05:00.0: HC died; cleaning up

I googled and tried adding the following kernal parameters

intel_iommu=off

Some sites also mention

iommu

This unfortunately didn't help me anything.

I also tried to add:

pciehp pciehp_force=1

And tried to do

sudo modprobe pciehp pciehp_force=1

But Arch Linux complains that it doesn't find the kernel module pciehp.

I didn't find any information on how to install pciehp kernel module on Arch Linux. Some say, it is build into the kernel or something.

debug information:

kernel version: 4.16.6-1-ARCH

dmesg with debugging xhci_hcd enabled and with xhci_hcd greped

lspci -nn:

05:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015] (rev 02)

dmesg (old without xhci_hcd-debugging and withouth grep

References to places with people working on the problem:

Linux mailing list:

Other sources:

  • 1
    Please edit question with the line in lspci -nn that identifies the problematic controller card. Also edit question with any other messages related to this card that show up in dmesg. (Indent 4 spaces for proper formatting). – dirkt Apr 29 '18 at 16:49
  • @dirkt I did! You may kindly edit the question posting an excerpt from the pastebin. – Arch Linux Tux Apr 29 '18 at 17:34
3

Hm. Unless I'm overlooking something, it looks like the controller is initialized twice:

[    5.195136] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    5.195145] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 3
[    5.202621] xhci_hcd 0000:05:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x00000090
....
[    5.203568] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    5.203572] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 4
[    5.204014] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.

The Renesas Product Info seems to say that while there are two ports each for each USB 3.0/USB 2.0 legacy root hub, there's only one root hub, so I don't understand what's going on.

If two instances of xhci_hcd are trying to control the card at the same time, then of course this will go wrong.

Next thing I'd do is to look at the xhci_hcd source, and recompile with debugging support. This requires programming experience, so if you don't know how to do that, alternatively file a bug report on whatever kernel bugtracker handles xhci_hcd, even if the devs just tell you that I am stupid and the repeated initialization is normal.

Edit

Inspecting the debug messages, this here looks very odd:

[    2.423207] xhci_hcd 0000:05:00.0: Finished xhci_run for USB2 roothub
[    2.423420] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[    2.423547] xhci_hcd 0000:05:00.0: set port power, actual port 0 status  = 0x2a0
[    2.423563] xhci_hcd 0000:05:00.0: set port power, actual port 1 status  = 0x2a0
[    2.423613] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    2.423616] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 2
[    2.423621] xhci_hcd 0000:05:00.0: // Turn on HC, cmd = 0x5.
[    2.426468] xhci_hcd 0000:05:00.0: Finished xhci_run for USB3 roothub
[    2.426630] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[    2.426798] xhci_hcd 0000:05:00.0: set port power, actual port 0 status  = 0x2a0
[    2.426819] xhci_hcd 0000:05:00.0: set port power, actual port 1 status  = 0x2a0
[    2.426893] xhci_hcd 0000:05:00.0: remove, state 1
[    2.427674] xhci_hcd 0000:05:00.0: USB bus 2 deregistered
[    2.427731] xhci_hcd 0000:05:00.0: remove, state 1

So after initializing everything, a reset gets called on both the USB 2.0 and the USB 3.0 root hub. They get removed, and then the driver tries to initialize the whole thing again (which is the second initialization I saw). Only this time it fails hard.

In the kernel source code, function xhci_endpoint_reset has comments along the lines "We might need to implement the config ep cmd in xhci 4.8.1" and "For now just print debug to follow the situation".

So this is definitely a case for the kernel developers. Make sure to amend the bug report with the debug output.

  • The bug-report is now here. It worked now at least once (maybe through software update). I don't now if it will work continuously - i hope so. Do you mean this by debugging xhci_hcd? Thanks for your effort and help! – Arch Linux Tux May 5 '18 at 16:06
  • It didn't help. It still does not work after reboot. I furthermore get the error-message [ 6.561655] psmouse serio1: synaptics: Unable to initialize device. and the mouse lags, when the express card is inserted, when it doesn't work. – Arch Linux Tux May 5 '18 at 16:18
  • 1
    Bugzilla @ kernel.org looks good. – dirkt May 12 '18 at 15:03
  • 1
    Update: There are two kernel developers on bugzilla.kernel.org, who seem to have made progress recently. – Arch Linux Tux Apr 27 at 10:58
  • 1
    Make sure to post an answer once it's verified that the quirk is working. – dirkt Apr 27 at 16:55
2

I'm having the same or a similar problem. Did open a thread here: https://bbs.archlinux.org/viewtopic.php?pid=1784837

My testing came to the result, that it showed up with kernel 4.12.8-1-ARCH. And in another laptop, this same card works - now with linux 4.15.15.

  • 1
    I have kernel version 4.16.6-1-ARCH running. – Arch Linux Tux May 12 '18 at 8:41
1

With the newest current kernel 5.0.10-arch1-1-ARCH the card works. But on my system it only works, when I insert the device before booting.

Other solutions:

In the above link, Xavier says here, that he found the workaround of adding the kernel-parameter pci=nomsi to his boot options. I did not investigate it yet further.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.