[vfio-users] RocketRaid 1144c / AsMedia 1042a
Alex Williamson
alex.l.williamson at gmail.com
Mon Jun 20 15:04:48 UTC 2016
On Fri, Jun 17, 2016 at 9:56 PM, Nick Rodgers <dotbatman at nerdfortress.com>
wrote:
> Almost a year and two more 4-controller usb 3.0 cards later, I still
> haven't found one that does what I'm after. I purchased the StarTech
> PEXUSB3S44V and the Sonnet Allegro Pro. Both devices get their own IOMMU
> group for each controller without the ACS override patch. The StarTech
> device seems to pass through okay, but I get in windows I get a code 10 on
> its root hub.
>
It seems like I've seen this with NEC USB3 devices, have you tried using
pci-stub to prevent attaching the host xhci drivers to the device? I have
a typical single controller NEC card that works more often than not with
that change, but I'm not sure if it's one of the cheap clone chips or a
real NEC part. It has less than desirable behavior on bare metal too.
> The Sonnet Allegro Pro passes through perfectly, until I restart or
> shutdown the VM. After the passed through controller's entry in lspci -vvvv
> changes from
>
> 04:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev
> 10) (prog-if 30 [XHCI])
> Subsystem: Sonnet Technologies, Inc. Device 6e31
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 26
> NUMA node: 0
> Region 0: Memory at fe500000 (64-bit, non-prefetchable) [size=64K]
> Region 2: Memory at fe511000 (64-bit, non-prefetchable) [size=4K]
> Region 4: Memory at fe510000 (64-bit, non-prefetchable) [size=4K]
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA
> PME(D0+,D1+,D2-,D3hot+,D3cold-)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
>
NoSoftRst- == PM reset is available.
> Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
> Address: 0000000000000000 Data: 0000
> Capabilities: [70] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s
> <64ns, L1 <1us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> SlotPowerLimit 25.000W
>
Does not support FLR.
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> TransPend-
> LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit
> Latency L0s unlimited, L1 unlimited
> ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+
> DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Not Supported, TimeoutDis+,
> LTR-, OBFF Not Supported
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-,
> LTR-, OBFF Disabled
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance-
> SpeedDis-
> Transmit Margin: Normal Operating Range,
> EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -6dB,
> EqualizationComplete-, EqualizationPhase1-
> EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> Capabilities: [b0] MSI-X: Enable+ Count=8 Masked-
> Vector table: BAR=2 offset=00000000
> PBA: BAR=4 offset=00000000
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
> RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
> RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt-
> RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> NonFatalErr-
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout-
> NonFatalErr+
> AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+
> ChkEn-
> Kernel driver in use: vfio-pci
> Kernel modules: xhci_pci
>
> to
>
> 04:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev
> ff) (prog-if ff)
> !!! Unknown header type 7f
> Kernel driver in use: vfio-pci
> Kernel modules: xhci_pci
>
IIRC we'll generally opt for a bus reset rather than using PM reset, but
this is indicative of a device that isn't returning from a PCI bus reset,
config space is returning -1 when read. You can try quirking the device to
avoid bus resets, add a line similar to this for your device:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/quirks.c#n3198
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160620/7ebd1caa/attachment.htm>
More information about the vfio-users
mailing list