Renesas uPD720202 controller fails when iommu=on

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I have a StarTech PEXUSB3S44V PCI card with 4 Renesas uPD720202 controllers on it.
The card I have comes with a ROM module, which contains a vendor specific configuration data block (see section 6.3.2 of the manual) and firmware version 2.0.2.6 (the most recent firmware version I know of).

The USB controllers work correctly when IOMMU is disabled and fail to initialize when iommu=on, on various kernel versions, including 4.4, 4.11, 4.12, 4.17, 5.0 and 5.3.
This controller is known to have problems when IOMMU is enabled and there have been two kernel patches [1], [2] to work around this problem.

I have captured dmesg output [3], which seems to indicate the card becomes unresponsive.

I have also observed that the procedure to read data from ROM [4]:
- Works when the kernel is running without IOMMU support
- Works whenever I unload the xhci_hcd driver and issue a PCI reset
- Does not work (in particular, the status code is never reset in DATA1) when the kernel is running with IOMMU support and the xhci_hcd driver is bound to the controller.

I am wondering whether there are any additional steps I could take to troubleshoot this issue? The original issue with the uPD720202 controllers with IOMMU enabled seem to be that the controller is accessing invalid memory regions.
Is there any way I can verify whether this causes the problem I'm seeing, or whether there's another issue at play here?

I apologize if this is the wrong forum for this question.

Thanks,

Frederik.

[1] https://github.com/torvalds/linux/commit/8466489ef5ba48272ba4fa4ea9f8f403306de4c7
[2] https://github.com/torvalds/linux/commit/12de0a35c996c3a75d050bff748815db3432849c 
[3] https://bugzilla.kernel.org/attachment.cgi?id=286707 
[4] http://billauer.co.il/blog/2015/11/renesas-rom-setpci/ 




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux