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

Reply via email to