[vfio-users] UEFI + PCI USB Device

Brett Foster fosterb at edgeandvertex.org
Sun Nov 1 18:28:55 UTC 2015


Howdy,

I ran a couple more tests and I think I see the problem. It is remarkably
similar to what I saw on the reset-affected Radeon cards. If i start
windows and shutdown windows properly - usb works great. If I start windows
and force stop. It fails. Unlike previous manifestations, this time it
fails at the windows boot screen. BUT it gets worse...

If the host is restarted (warm reset?), the host will be unable to boot.
The log spits out some gibberish related to USB then halts. It's not a
kernel panic. It looks like both windows or linux drivers get stuck in a
way that leaves the system half alive and half dead. The host responds to
CTRL-ALT-DELETE, however it will only partially shutdown before getting
stuck again. The host must be physically powered down (i.e. AC removed)
before the host will operate properly.

I am tempted to look in to the linux xhci driver to see why it doesn't fail
gracefully.

Thoughts?

Brett

On Sun, Nov 1, 2015 at 8:15 AM, francesco dicarlo <evilsephiroth at gmail.com>
wrote:

> Well, I'm intereted in this issue too. Buying an additional pci usb card
> and don't want to get stuck in the same situation...
>
> 2015-11-01 12:35 GMT+01:00 Blank Field <ihatethisfield at gmail.com>:
>
>> Reply to the list. Use reply all button.
>>
>> I have no idea how to sort out your issue:(
>> On Nov 1, 2015 8:56 AM, "Brett Foster" <fosterb at edgeandvertex.org> wrote:
>>
>>> Just to follow up -- the comment in the source code is this:
>>>
>>> // After Chip Hardware Reset wait until the Controller Not Ready (CNR)
>>> flag
>>> // in the USBSTS is '0' before writing any xHC Operational or Runtime
>>> registers.
>>>
>>> I assume the card is getting stuck in a CNR state. Maybe it's another
>>> one of those improperly implemented reset situations.
>>>
>>> On Sat, Oct 31, 2015 at 10:42 PM, Brett Foster <
>>> fosterb at edgeandvertex.org> wrote:
>>>
>>>> Hi,
>>>>
>>>> Neat. So I enabled the logging and we get this....
>>>>
>>>> XhcCreateUsb3Hc: Capability length 0x20
>>>> XhcCreateUsb3Hc: HcSParams1 0x8000820
>>>> XhcCreateUsb3Hc: HcSParams2 0x24000011
>>>> XhcCreateUsb3Hc: HcCParams 0x14051C7
>>>> XhcCreateUsb3Hc: DBOff 0x800
>>>> XhcCreateUsb3Hc: RTSOff 0x600
>>>> XhcCreateUsb3Hc: UsbLegSupOffset 0x0
>>>> XhcCreateUsb3Hc: DebugCapSupOffset 0x50
>>>> XhcSetBiosOwnership: called to set BIOS ownership
>>>> XhcResetHC!
>>>> ASSERT
>>>> /home/jenkins/workspace/edk2/rpmbuild/rpm/BUILD/edk2.git/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c(2032):
>>>> !((((BOOLEAN)(((XhcReadOpReg ((Xhc), (0x0004))) & ((0x00000800))) ==
>>>> ((0x00000800))))))
>>>>
>>>> I feel like this issue is going to be much harder to debug than it is
>>>> worth. Full log is attached.
>>>>
>>>>
>>>> On Fri, Oct 30, 2015 at 11:42 PM, Blank Field <ihatethisfield at gmail.com
>>>> > wrote:
>>>>
>>>>> Add isa debug console to your script:
>>>>> -global isa-debugcon.iobase=0x402 \
>>>>> -debugcon file:"debug.log"
>>>>> OVMF will print out verbose debug messages to $(pwd)/debug.log
>>>>> On Oct 31, 2015 6:27 AM, "Brett Foster" <fosterb at edgeandvertex.org>
>>>>> wrote:
>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> So I've been fumbling my way through setting up a virtual machine
>>>>>> with GPU pass through. I was able to get UEFI + ATI R5 230 to windows 8.1
>>>>>> installer. Great... now I wanted to add a PCI USB 3.0 card to the VM. When
>>>>>> I do, the VM locks up at the main OVMF screen that says "TianoCore" and so
>>>>>> many bytes of system memory tested.
>>>>>>
>>>>>> Unlike the GPU I found I couldn't figure out great way to prevent the
>>>>>> standard linux drivers from picking up the device before being able to map
>>>>>> to vfio-pci. So I unbind the device when booting:
>>>>>>
>>>>>> echo 0000:04:00.0 > /sys/bus/pci/drivers/xhci_hcd/unbind
>>>>>>
>>>>>> Thoughts?
>>>>>>
>>>>>> Kernel: 4.0.4-301.fc22.x86_64
>>>>>> Qemu: qemu-2.3.0-3.fc22
>>>>>>
>>>>>> The only seemingly relevant messages in the kernel log are:
>>>>>> [ 6209.596712] vfio-pci 0000:05:00.1: enabling device (0400 -> 0402)
>>>>>> [ 6209.619946] vfio-pci 0000:04:00.0: enabling device (0400 -> 0402)
>>>>>>
>>>>>> The card is on its own group:
>>>>>> /sys/kernel/iommu_groups/13/devices/0000:04:00.005:00.0 VGA
>>>>>> compatible controller [0300]:
>>>>>> The GPU is on these groups:
>>>>>> /sys/kernel/iommu_groups/14/devices/0000:05:00.0
>>>>>> /sys/kernel/iommu_groups/14/devices/0000:05:00.1
>>>>>>
>>>>>> 04:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB
>>>>>> 3.0 Host Controller [1912:0014] (rev 03) (prog-if 30 [XHCI])
>>>>>>     Subsystem: Renesas Technology Corp. uPD720201 USB 3.0 Host
>>>>>> Controller [1912:0014]
>>>>>>     Flags: bus master, fast devsel, latency 0, IRQ 19
>>>>>>     Memory at f7200000 (64-bit, non-prefetchable) [size=8K]
>>>>>>     Capabilities: <access denied>
>>>>>>     Kernel driver in use: vfio-pci
>>>>>> Advanced Micro Devices, Inc. [AMD/ATI] Caicos PRO [Radeon HD 7450]
>>>>>> [1002:677b] (prog-if 00 [VGA controller])
>>>>>>     Subsystem: ASUSTeK Computer Inc. Device [1043:3025]
>>>>>>     Flags: bus master, fast devsel, latency 0, IRQ 16
>>>>>>     Memory at e0000000 (64-bit, prefetchable) [size=256M]
>>>>>>     Memory at f7120000 (64-bit, non-prefetchable) [size=128K]
>>>>>>     I/O ports at c000 [size=256]
>>>>>>     Expansion ROM at f7100000 [disabled] [size=128K]
>>>>>>     Capabilities: <access denied>
>>>>>>     Kernel driver in use: vfio-pci
>>>>>>     Kernel modules: radeon
>>>>>>
>>>>>> 05:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI]
>>>>>> Caicos HDMI Audio [Radeon HD 6400 Series] [1002:aa98]
>>>>>>     Subsystem: ASUSTeK Computer Inc. Device [1043:aa98]
>>>>>>     Flags: bus master, fast devsel, latency 0, IRQ 17
>>>>>>     Memory at f7140000 (64-bit, non-prefetchable) [size=16K]
>>>>>>     Capabilities: <access denied>
>>>>>>     Kernel driver in use: vfio-pci
>>>>>>     Kernel modules: snd_hda_intel
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> vfio-users mailing list
>>>>>> vfio-users at redhat.com
>>>>>> https://www.redhat.com/mailman/listinfo/vfio-users
>>>>>>
>>>>>>
>>>>
>>>
>> _______________________________________________
>> vfio-users mailing list
>> vfio-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/vfio-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20151101/fb694d45/attachment.htm>


More information about the vfio-users mailing list