On 08.10.2017 17:03, Hao Wei Tee wrote:
Hi,
I've been having DMA read faults with my VL805 xHCI controller when the Intel
IOMMU
is turned on:
xhci_hcd 0000:03:00.0: xHCI Host Controller
xhci_hcd 0000:03:00.0: new USB bus registered, assigned bus number 2
DMAR: DRHD: handling fault status reg 3
DMAR: [DMA Read] Request device [03:00.0] fault addr de28a000 [fault
reason 01] Present bit in root entry is clear
<snip many identical DMAR faults>
xhci_hcd 0000:03:00.0: can't setup: -110
xhci_hcd 0000:03:00.0: USB bus 2 deregistered
xhci_hcd 0000:03:00.0: init 0000:03:00.0 fail, -110
xhci_hcd: probe of 0000:03:00.0 failed with error -110
The controller works fine, as far as I can tell, when the IOMMU is off.
I've tracked it down to where CMD_RESET is sent to the controller in xhci_reset,
[1] called from xhci_gen_setup in xhci.c. It seems that when the command
register
is being polled in the xhci_handshake after that, the controller tries to do a
DMA read from an address that is apparently invalid (?). Eventually
xhci_handshake
times out.
I've tried setting the XHCI_NO_64BIT_SUPPORT quirks flag as someone suggested in
an earlier thread here [2] about a similar/the same(?) device, but that doesn't
seem to have worked.
Help, please. I have no idea how to debug this further.
Could it maybe be related to a iommu/vt-d: Fix scatterlist offset handling fix:
https://lists.linuxfoundation.org/pipermail/iommu/2017-September/024371.html
Can you check if that patch is included?
The author Robin Murphy (CC) Also had some recent issues with a VIA VL805
controller
https://marc.info/?l=linux-usb&m=150730678304383&w=2
-Mathias
Some information about the device in question:
03:00.0 USB controller [0c03]: VIA Technologies, Inc. VL805 USB 3.0 Host
Controller [1106:3483] (rev 01) (prog-if 30 [XHCI])
Subsystem: Gigabyte Technology Co., Ltd VL805 USB 3.0 Host Controller
[1458:5007]
Flags: fast devsel, IRQ 17
Memory at f7100000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [80] Power Management version 3
Capabilities: [90] MSI: Enable- Count=1/4 Maskable- 64bit+
Capabilities: [c4] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Kernel modules: xhci_pci
Thanks.
N.B. I sent a message here a while ago mentioning changes in 4.13 that might be
the cause, but that is not the case. My distro just turned on the IOMMU by
default
when they updated to 4.13. Oops.
[1]:
https://elixir.free-electrons.com/linux/v4.13.5/source/drivers/usb/host/xhci.c#L184
[2]: https://www.spinics.net/lists/linux-usb/msg146591.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html